2

こんにちは、vs 2012 がインストールされた Server 2008 r2 x64 で x86 ソリューションを構築する際に問題が発生しています。以下のエラーで常にエラーになります。

  [msbuild] "C:\fake.sln" (Build target) (1) ->
  [msbuild] "C:\fake.csproj.metaproj" (default target) (2) ->
  [msbuild] "C:\fake.csproj" (default target) (8) ->
  [msbuild] "C:\xeqodvbc.tmp_proj" (_CompileTemporaryAssembly target) (11) ->
  [msbuild] (CoreCompile target) -> 
  [msbuild]   error CS1607 : Warning as error : Assembly generation -- Referenced assembly 'PresentationCore.dll' targets a different processor [C:\xeqodvbc.tmp_proj]
  [msbuild]   error CS1607 : Warning as error : Assembly generation -- Referenced assembly 'System.Data.dll' targets a different processor [C:\xeqodvbc.tmp_proj]

以下は、失敗している nant タスクです。(プロジェクト名を変更しました) Set3.5 ターゲットが行うことは、msbuild.targetframework プロパティを v3.5 に設定することだけです。

<target name="faketarget" depends="makeTempDir" description="builds">
    <call target="set3.5" />
    <msbuild project="our32bit.sln" target="Build" verbosity="${msbuild.verbosity}">
        <property name="Configuration" value="${build.configuration}" />
        <property name="Platform" value="x86" />
        <property name="PlatformTarget" value="x86" />
        <!--<property name="Platform" value="${build.platform}" />-->
        <property name="RunCodeAnalysis" value="${code.analysis}" />
        <property name="CodeAnalysisRules" value="${code.analysis.rules}" />
        <property name="TargetFrameworkVersion" value="${msbuild.targetframework}" />
    </msbuild>

ここで、ソリューションのフォルダーに移動して msbuild /p:TargetFrameworkVersion=v3.5 を呼び出すと、問題なくビルドされ、VS 2012 で開くと、そこからビルドすることもできます。助言がありますか?

4

1 に答える 1

1

私はこれを解決しましたが、これが内部の nant contrib の問題なのか、それとも正しく行わなかっただけなのかわかりません。

これを解決するには、C:\Windows\Microsoft.NET\Framework\v4.0.30319 にインストールされている msbuild を指す exec タスクを作成する必要がありました。

msbuild タスクを実行すると、このパス C:\Windows\Microsoft.NET\Framework64\v4.0.30319 が使用されました

したがって、内部的には、nant は 64 ビット マシンで 64 ビット パスにデフォルト設定されていると思います。

于 2013-07-11T12:51:35.207 に答える