2009-07-28 3 views

답변

23

NAntContrib은 .NET Framework 버전 2.0을 사용합니다. .NET 3.5를 사용하려면 MsBuild.exe를 직접 호출해야합니다. 새 버전의 .NET으로 업그레이드 할 때 MSBuildPath 속성 만 수정하면됩니다. 여기

는 예제 :

<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe"/>  
<target name="build"> 
    <exec program="${MSBuildPath}"> 
     <arg line='"${SolutionFile}"' /> 
     <arg line="/property:Configuration=${SolutionConfiguration}" /> 
     <arg value="/target:Rebuild" /> 
     <arg value="/verbosity:normal" /> 
     <arg value="/nologo" /> 
     <arg line='/logger:"C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll"'/> 
    </exec> 
</target> 

.NET 다양한 버전의 값이다 MSBuildPath

  • 2.0, 3.0 C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe
  • 3.5 C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe
  • 4, 4.5, 4.5.1 , 4.5.2 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
비트 빌드에 대한 17,451,515,

, Framework64 의견의 일부에까지 이어

업데이트 Framework하려면 value 속성이 공백이없는 매개 변수에 사용됩니다 변경합니다. line은 공백으로 인해 구분해야하는 매개 변수에 사용됩니다. 그렇지 않으면 응용 프로그램은 공백을 입력 끝으로 사용합니다.

+0

와우 덕분이다. 나는 NAntContrib이 훨씬 뒤떨어져 있다고 상상하지 못했습니다. – keithm

+7

-1 을 .NET 3.5와 함께 사용할 수 있습니다. NAnt와 NAntContrib의 최신 밤거리를 가지고 있는지 확인하십시오 (NAnt Nightly 20090130 및 NAntContrib Nightly 20090201). –

+0

나는 NAnt에 익숙하지 않으며, arg 라인의 의미에 대해 다소 혼란 스럽다. msbuild를 다룰 때 arg 값 arg 값 arg 값. 문서가 여전히 나를 위해 일을 정리하지 못했기 때문에 누군가가 내게 그 차이점을 설명 할 수 있습니까? – sheir

2

여기 간단한 목표

<target> 

    <loadtasks assembly="${nant::get-base-directory()}/../../nantcontrib-0.85/bin/NAnt.Contrib.Tasks.dll" /> 

    <msbuild project="${filepath.root}/yourproject.csproj" verbose="true">  
      <arg value="/p:Platform=${build.platform}" /> 
      <arg value="/t:Rebuild" /> 
      <arg value="/p:OutputPath=${build.dir}/bin/" /> 
     </msbuild> 

</target>