2008-11-29 9 views
9

मैं VS2008 SP1 और x64 XP के साथ NANT 0.86b1 चल रहा हूं।NAnt और VS2008 (.NET 3.5) - फ़ाइल का समाधान प्रारूप Solution.sln समर्थित नहीं है

मेरे पास एक मूल बिल्ड फ़ाइल (नीचे) है जो त्रुटि फ़ाइल 'Solution.sln' का समाधान प्रारूप समर्थित नहीं है।

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

<target name="build" description="Full Rebuild" depends="clean,compile" /> 

<target name="clean" description="Cleans outputs"> 
    <delete dir="bin" failonerror="false" /> 
    <delete dir="obj" failonerror="false" /> 
</target> 

<target name="compile" description="Compiles solution"> 
    <solution configuration="debug" solutionfile="Solution.sln" /> 
</target> 

किसी और को इस समस्या का सामना करना है? मुझे इसके बारे में कुछ भी उपयोगी नहीं मिल रहा है।

उत्तर

7

आप देखेंगे कि दस्तावेज़ इंगित करते हैं कि NANT का <solution> कार्य VS2003 से नए समाधान समाधान फ़ाइलों का समर्थन नहीं करता है।

मैं वीएस2003 की तुलना में नई परियोजनाओं के लिए the <msbuild> task from nantcontrib का उपयोग करने की सलाह देता हूं।

इसके अलावा, NANT का .85 संस्करण केवल 2.0 तक फ्रेमवर्क संस्करणों का समर्थन करता है। 3.5 ढांचे के खिलाफ काम करने वाली चीज़ों को पाने का सबसे शुद्ध तरीका NANT के .86-beta1 संस्करणों का उपयोग करना है। फिर आप 3.5 समाधान के खिलाफ <msbuild> कार्य का उपयोग करने में सक्षम होंगे।

7

नेंट-0.86-बीटा 1 3.5 का समर्थन करता है लेकिन समाधान नोड में कितना अच्छा नहीं है।

<target name="build" description="Compiles using the AutomatedDebug Configuration"> 
    <!-- <loadtasks assembly="C:\Dev\nant-0.86-beta1\bin\NAnt.Contrib.Tasks.dll" /> --> 
    <msbuild project="${Solution.Filename}"> 
     <property name="Configuration" value="Release"/> 
    </msbuild> 
    </target> 
+0

+1। मैं दोनों के साथ खेल रहा हूं क्योंकि मैं अपने निर्माण को स्वचालित करना शुरू कर रहा हूं और एमएसबिल्ड उठने और दौड़ने के लिए बस तेज है। मुझे यह भी लगता है कि निर्माण को चलाने के लिए वास्तविक समाधान/प्रोजेक्ट फ़ाइलों का उपयोग करने का विचार सिर्फ एक 'अच्छा विचार' है क्योंकि इसका मतलब है कि सभी बिल्ड जानकारी एक ही स्थान पर है। (वीएस और एक नेंट कॉन्फ़िगरेशन के लिए समाधान/प्रोजेक्ट होने की बजाय।) –

2

देखें Building the platform code with nant and VS2008

यह ढेर अतिप्रवाह पर यहाँ है: मैं nantcontrib से इस का उपयोग कर समाप्त हो गया। असल में आपके पास केवल कुछ विकल्प हैं, प्रोजेक्ट बिल्ड फाइलों, सामान्य बिल्ड फाइलों और मास्टर बिल्ड फ़ाइल के साथ स्वयं को सभी बिल्डों को नियंत्रित करते हैं। या प्रत्येक समाधान के लिए MSBuild के सही संस्करण को निकालने के लिए Exec कार्य चलाएं जिसे आप संकलित करना चाहते हैं। Msbuild कार्यों का उपयोग करने के लिए