2013-07-10 4 views
2

안녕하십니까, 2012 년 vs 2012가 설치된 서버 2008 r2 x64에서 x86 솔루션을 빌드하는 데 문제가 있습니다. 아래 오류로 인해 항상 오류가 발생합니다.Nant 0.92 vs 2012와 함께 64 비트 OS에서 32 비트 솔루션을 구축하지 않습니다.

[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> 

지금은 MSBuild는 문제를 구축하지 않고 내가 VS 2012 년을 열면 내가 거기뿐만 아니라에서를 구축 할 수 있습니다 /p:TargetFrameworkVersion=v3.5. 어떤 제안?

답변

1

나는이 문제를 해결했으며 내부 nant가 문제를 일으키지 않거나 올바르게 적용하지 못했는지 확신 할 수 없습니다.

이 문제를 해결하려면 C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319에 설치된 msbuild를 가리키는 exec 작업을 만들어야했습니다.

내가이 경로 C를 사용 MSBuild에서 작업을 실행 할 때 : \ WINDOWS를 \ Microsoft.NET \ Framework64 \ 그래서 내부적으로 내가 NANT 64 비트 시스템에서 64 비트 경로에 디폴트 생각

v4.0.30319.