2009-07-28 12 views
15

ऐसा लगता है कि csproj फ़ाइलों का उपयोग करने के लिए नेंट प्राप्त करने के लिए कम से कम दो विकल्प हैं: NAntContrib के कार्य का उपयोग करके या msbuild.exe का उपयोग करके (उदा।, codecampserver)। क्या मैं यह अधिकार पढ़ रहा हूं, और यदि हां, तो NAntContrib कार्य पर msbuild.exe का उपयोग करने का क्या फायदा है?<msbuild> एनएएनटी के साथ कार्य या msbuild.exe?

उत्तर

23

NANTContrib .NET Framework V2.0 मानता है। यदि आप .NET 3.5 का उपयोग करना चाहते हैं, तो आपको सीधे MsBuild.exe को कॉल करने की आवश्यकता होगी। जैसे ही आप .NET के नए संस्करणों में अपग्रेड करते हैं, आपको केवल MSBuildPath प्रॉपर्टी को संशोधित करने की आवश्यकता होती है।

यहाँ एक उदाहरण है:

<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> 

नेट के विभिन्न संस्करणों के लिए मूल्य MSBuildPath हैं

  • 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

एक 32-बिट निर्माण के लिए, बदलने Framework64Framework को

अद्यतन टिप्पणियों में से कुछ पर ऊपर के बाद, value विशेषता पैरामीटर कोई रिक्त स्थान के लिए प्रयोग किया जाता है। line उन पैरामीटर के लिए उपयोग किया जाता है जिन्हें रिक्त स्थान के कारण सीमित करने की आवश्यकता होती है। अन्यथा, एप्लिकेशन अंतरिक्ष के अंत के रूप में अंतरिक्ष का उपयोग करेगा।

+0

वाह, धन्यवाद है। मैंने कभी कल्पना नहीं की कि NANTContrib अब तक पीछे था। – keithm

+7

-1 आप .NET 3.5 के साथ का उपयोग कर सकते हैं। सुनिश्चित करें कि आपके पास NANT और NAntContrib की नवीनतम रात्रिभोज है (परीक्षण NANT नाइटली 2000130 और NAntContrib नाइटली 20090201)। –

+0

मैं एनएएनटी के लिए नया हूं और एमएसबिल्ड से निपटने के दौरान आर्ग लाइन तर्क मूल्य के अर्थ के बारे में थोड़ा उलझन में हूं। क्या कोई मुझे अंतर बता सकता है क्योंकि दस्तावेज अभी भी मेरे लिए चीजों को स्पष्ट नहीं करता है। – sheir

2

यहाँ एक सरल लक्ष्य

<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>