2013-07-10 4 views
2

Здравствуйте, мне не удается создать решение x86 на сервере 2008 r2 x64 с установленным vs 2012. Он всегда выдает ошибки с погрешностями ниже:Nant 0.92 Не будет строить 32-битное решение на 64-битной ОС с vs 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] 

Ниже приведена задача, которая не работает. (Я изменил имена проектов). Все целевые объекты 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> 

Теперь если я иду в папку SOLUTION и вызовем MSBuild /p:TargetFrameworkVersion=v3.5 это не создает никаких проблем, и если я открываю его в VS 2012 я могу построить его оттуда, а также. Какие-либо предложения?

ответ

1

Я решил это, и я не уверен, что это внутренняя проблема с внесением вклада, или я просто не сделал это правильно.

Чтобы решить эту проблему, мне пришлось создать задачу exec, указывающую на msbuild, установленную в C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319.

Когда я бы запустить задачу MSBuild он использовал этот путь C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319

Так внутренне я думаю Nant это недобросовестный на 64 битном пути на 64-битных машин.