2009-07-28 14 views

Odpowiedz

23

NAntContrib zakłada .NET Framework V2.0. Jeśli chcesz korzystać z .NET 3.5, musisz bezpośrednio zadzwonić do MsBuild.exe. Podczas aktualizacji do nowej wersji .NET wystarczy zmodyfikować właściwość MSBuildPath.

Oto przykład:

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

Wartość MSBuildPath dla różnych wersji .NET są

  • 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

Na kompilacji 32-bitowych, zmień Framework64 do Framework

Aktualizacja Nawiązując do niektórych komentarzy, atrybut value służy do parametrów, które nie mają miejsca. line jest używany dla parametrów, które muszą być oddzielone ze względu na spacje. W przeciwnym razie aplikacja użyje spacji jako końca danych wejściowych.

+0

Wow, dzięki. Nigdy nie przypuszczałem, że NAntContrib jest tak daleko w tyle. – keithm

+7

-1 Możesz użyć z .NET 3.5. Upewnij się, że masz najnowsze nightlies NAnt i NAntContrib (testowane NAnt Nightly 20090130 i NAntContrib Nightly 20090201). –

+0

Jestem nowy dla NAnt i jestem nieco zdezorientowany co do znaczenia arg linia wartość arg przy pracy z msbuild. Czy ktoś może mi wytłumaczyć różnicę, ponieważ dokumentacja wciąż nie wyjaśniała dla mnie problemu. – sheir

2

Oto prosty cel

<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> 
Powiązane problemy