2013-02-27 15 views
5

Mam skrypty, które w jednym z celów używają znaczników msbuild do zbudowania rozwiązania Visual Studio 2010.Jak określić wersję MSBuild w skrypcie nant?

Problemem jest to, że nie powiedzie się, gdy trafi do tego punktu, błąd jest:

Solution file error MSB5014: File format version is not recognized. MSBuild can only read solution files between versions 7.0 and 9.0, inclusive. 

Failed to start MSBuild. 

External Program Failed: C:\Windows\Microsoft.NET\Framework\v2.0.50727\msbuild.exe (return code was 1) 

Błąd sens, jeśli dzwoni wersji .NET 2.0 MSBuild nie skompiluje rozwiązanie VS2010. Jednak nie mogę wymyślić, jak zmusić go do wywołania odpowiedniej wersji MSBuild.

Jeśli uruchomić „gdzie MSBuild” (z tego samego VS2010 wiersza polecenia, że ​​skrypt kompilacji nie powiodło się), otrzymuję:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe 

Jeśli uruchomię „msbuild/wersję” (znowu to samo okno) Otrzymuję:

Microsoft (R) Build Engine version 4.0.30319.17929 
[Microsoft .NET Framework, version 4.0.30319.18034] 
Copyright (C) Microsoft Corporation. All rights reserved. 

4.0.30319.17929 

Wygląda na to, że wszystko powinno być w wersji 4.0, ale tak nie jest. Każdy pomysł, co daje? Wiem, że już wcześniej zajmowałem się tą sprawą, ale nie pamiętam, co to miało uratować mi życie.

Odpowiedz

4

Doceniam odpowiedzi i wiem skolima użytkownika będzie działać, rozwiązanie zakończył się tak proste, jak dodanie tego tagu:

<property name="nant.settings.currentframework" value="net-3.5"/> 

Dzięki jeszcze raz.

0

Odpowiedziałem podobne pytanie: <msbuild> task or msbuild.exe with NAnt? jakiś czas temu

Zasadniczo, jeśli ustawisz właściwość, która wskazuje na plik wykonywalny MSBuild można zażegnać (Long Term) problem podczas aktualizacji do nowszej .NET niż to, co NAnt wspiera z pudełka.

Powiązane problemy