2013-02-27 63 views
5

我有一個nant腳本,它的目標之一使用msbuild標籤來構建Visual Studio 2010解決方案。如何在nant腳本中指定MSBuild版本?

的問題是,當它擊中這一點上失敗,錯誤是:

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) 

錯誤是有道理的,如果它調用了.NET 2.0版本的MSBuild不會編譯VS2010的解決方案。但是,我無法弄清楚如何讓它調用正確版本的MSBuild。

如果我跑「其中的MSBuild」(來自同一VS2010命令提示符的構建腳本失敗),我得到:

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

如果我運行「的MSBuild /版」(再次,同一個窗口中)我得到:

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 

所以一切看起來像它應該使用4.0版本,但它不是。任何想法是什麼給?我知道我之前已經解決過這個問題,但不記得拯救我的生命是什麼。

回答

4

我欣賞的答案,我知道skolima的會的工作,解決方案最終被加了這個標籤的簡單:再次

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

感謝。

0

我回答了類似的問題:<msbuild> task or msbuild.exe with NAnt?而回

從本質上講,如果你設置一個指向的MSBuild可執行文件的屬性,您可以在升級到.NET的一個新的避免(長期)的問題比NAnt支持的更好。