您好我在安装了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中打开它,我也可以从那里构建它。有什么建议吗?
答案 0 :(得分:1)
我已经解决了这个问题,我不确定这是一个内部的nant贡献问题,还是我没有正确地做到这一点。
要解决这个问题,我必须创建一个exec任务,指向安装在C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319的msbuild。
当我运行msbuild任务时,它使用此路径C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
所以内部我认为nant默认为64位机器上的64位路径。