Sembra che ci siano (almeno) due opzioni per far sì che nant utilizzi i file csproj: utilizzando l'attività di NAntContrib o utilizzando msbuild.exe direttamente (ad es., codecampserver). Sto leggendo questo diritto, e in tal caso, qual è il vantaggio di utilizzare msbuild.exe sull'attività NAntContrib?<msbuild> task o msbuild.exe con NAnt?
15
A
risposta
23
Il NAntContrib presuppone .NET Framework V2.0. Se si desidera utilizzare .NET 3.5, è necessario chiamare direttamente MsBuild.exe. Quando si esegue l'aggiornamento a nuove versioni di .NET, è necessario modificare solo la proprietà MSBuildPath.
Ecco un esempio:
<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>
Il valore MSBuildPath
per le diverse versioni di .NET sono
- 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
Per un 32 bit costruire, cambiare Framework64
al Framework
Aggiornamento Facendo seguito alcuni dei commenti, l'attributo value
viene utilizzato per i parametri che non hanno spazi. line
viene utilizzato per i parametri che devono essere delimitati a causa di spazi. In caso contrario, l'applicazione utilizzerà lo spazio come fine dell'input.
2
Ecco un semplice obiettivo
<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>
Wow, grazie. Non avrei mai immaginato che NAntContrib fosse così indietro. – keithm
-1 È possibile utilizzare con .NET 3.5. Assicurati di avere gli ultimi notturni di NAnt e NAntContrib (testato NAnt Nightly 20090130 e NAntContrib Nightly 20090201). –
Sono nuovo di NAnt e sono un po 'confuso sul significato della riga arg arg arg valore quando si tratta di msbuild. Qualcuno può spiegarmi la differenza perché la documentazione non ha ancora chiarito le cose per me. – sheir