2013-02-27 235 views
5

मेरे पास एक नैन स्क्रिप्ट है कि इसके एक लक्ष्य में विजुअल स्टूडियो 2010 समाधान बनाने के लिए एमएसबिल्ड टैग का उपयोग किया जाता है। अगर यह यह VS2010 समाधान संकलन नहीं होगा MSBuild की .NET 2.0 संस्करण कॉल कर रहा हैनैन स्क्रिप्ट में 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) 

त्रुटि, समझ में आता है:

समस्या त्रुटि है, यह विफल रहता है, जब यह इस बिंदु पर पड़ती है। हालांकि, मैं यह नहीं समझ सकता कि एमएसबिल्ड के सही संस्करण को कॉल करने के लिए इसे कैसे प्राप्त किया जाए।

अगर मैं रन 'जहां 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 के काम करेगा, समाधान इस टैग के अलावा के रूप में सरल किया जा रहा समाप्त हो गया।

1

क्या मैं आमतौर पर उपयोग करें मैं -t:net-4.0 स्विच (या किसी अन्य ढांचा संस्करण) के साथ NAnt निष्पादित और मेरी स्क्रिप्ट में मैं <exec program="${framework::get-tool-path('msbuild.exe')}" managed="strict" /> होता वास्तव में MSBuild आह्वान करने के लिए है। हां, यह अंतर्निहित <msbuild/> कार्य का उपयोग नहीं करता है लेकिन यह अधिक लचीला है। फिर

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

धन्यवाद:

0

मैं एक ऐसी ही सवाल का जवाब दे: <msbuild> task or msbuild.exe with NAnt? एक समय पहले

अनिवार्य रूप से, अगर आप एक संपत्ति है कि MSBuild निष्पादन के लिए अंक निर्धारित करते हैं, आप (लंबे समय तक) से बचने के सकता है मुद्दा है जब आप नेट के एक नए के लिए नवीनीकरण एनएएनटी बॉक्स से बाहर क्या समर्थन करता है।