2013-07-10 54 views
2

您好,我在安裝vs 2012的Server 2008 r2 x64上構建x86解決方案時遇到問題。它總是錯誤與下面的錯誤:Nant 0.92無法在64位操作系統上構建32位解決方案,與2012年相比

[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中打開它,我可以從那裏也建立它。有什麼建議麼?

回答

1

我已經解決了這個問題,我不確定這是一個內部的nant contrib問題還是我沒有正確地做。

爲了解決這個問題,我必須創建一個exec任務,指向安裝在C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319上的msbuild。

的時候我會運行它使用此路徑C MSBuild任務:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319

所以在內部,我認爲惡性默認到64位路徑在64臺機器。

相關問題