Wygląda na to, że istnieją (przynajmniej) dwie opcje uzyskiwania dostępu do plików csproj: przy użyciu zadania NAntContrib lub bezpośrednio przy użyciu msbuild.exe (np. codecampserver). Czy czytam to dobrze, a jeśli tak, to jaka jest zaleta korzystania z msbuild.exe w zadaniu NAntContrib?<msbuild> zadanie lub msbuild.exe z NAnt?
15
A
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.
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>
Wow, dzięki. Nigdy nie przypuszczałem, że NAntContrib jest tak daleko w tyle. – keithm
-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). –
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