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>
Powiązane problemy
- 1. NAnt <msbuild> niestandardowy katalog wyjściowy
- 2. Zmiana katalogu roboczego msbuild.exe
- 3. Korzystanie IncrediBuild z devenv.exe vs MSBuild.exe
- 4. Kodowanie wyjściowe MSBuild.exe
- 5. Jak określić wersję MSBuild w skrypcie nant?
- 6. W NAnt <exec>, jak mają warunkową <arg> oparciu o wartość nieruchomości?
- 7. Jak używać mercurial z nant
- 8. Zdarzenie budowania postu nie działa z msbuild.exe
- 9. msbuild.exe pozostanie otwarte, blokowanie plików
- 10. Jak wyśmiać zadanie <> Wynik?
- 11. Zaplanowane zadanie lub usługa Windows
- 12. Casting zadanie <T> do zadania <DerivedT>
- 13. Nie udało się z powodzeniem uruchomić lub połączyć się z dzieckiem procesowi MSBuild.exe
- 14. FailOnError nie działa w niestandardowym zadaniu NAnt
- 15. Wiadomość echo z nową linią w nant
- 16. async Zadanie <IEnumerable> z zwrotem plonów?
- 17. Z wyjątkiem .git w Ant <tar> Zadanie
- 18. rejestrowanie testu Natychmiastowe JUnit z <junit> Ant zadanie
- 19. Ocena równości własności w Nant
- 20. integracji StyleCop z CI build procesu (Criuse sterowania, Nant, msbuild i StyleCop)
- 21. Czy NAnt w martwej sadzawce?
- 22. Utwórz katalog przy użyciu Nant
- 23. wywoływanie plików wsadowych wewnątrz nant
- 24. cout << "привет"; lub wcout << L "привет";
- 25. Jak Async.AwaitTask na zwykłym zadaniu (nie zadanie <T>)?
- 26. Jak usunąć projekt lub zadanie programu Phabricator?
- 27. Operator lub administrator odrzucił zadanie harmonogramu zadania
- 28. Przechodząc tablicę funkcji, która przyjmuje albo params Zadanie [] lub IEnumerable <T>
- 29. Jak uruchomić testy NUnit v2.4.8 z NAnt 0.86 beta?
- 30. Zadanie selera z odliczaniem
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