2009-08-01 11 views
36

के साथ .NET 4 प्रोजेक्ट्स का निर्माण। मैं .NET 4.0 फ्रेमवर्क को लक्षित करने वाली परियोजनाओं को बनाने के लिए नैन कैसे प्राप्त करूं?नेंट

उत्तर

13

आप nant उपयोग करने के लिए लक्षित कर .NET 4.0 परियोजनाओं का निर्माण करना चाहते हैं तो आप NAnt.exe.config को संशोधित करने और नेट 4.0 लक्ष्य ढांचा जोड़ सकते हैं और <startup> अनुभाग पर एक <supportedRuntime ... /> पंक्ति जोड़ने के लिए होगा।

2

यह सुंदर इन सवालों/समस्याओं के समान है:

<msbuild> task or msbuild.exe with NAnt?

एक अन्य विकल्प सीधे एक ब्लॉक से MSBuild कॉल करने के लिए किया जाएगा।

<property name="MSBuildPath" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0\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> 
5

http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html NANT के लिए .config फ़ाइल के लिए एक पूर्ण कोड है।

+0

यह है कि मैं क्या संदेश प्राप्त करने के बाद की जरूरत कृपया परिवार 'शुद्ध' और clrversion '4.0.30319 के साथ एक \ \ नोड जोड़ते है 'win32' मंच नोड के तहत। –

23

2010 अप्रैल 15, ... .net 4 और बनाम 2010 के बाद यूजीन से सही उत्तर के ऊपर अद्यतन किया गया था।

मैंने बनाम 2010 और .NET 4 रनटाइम डाउनलोड किया। उत्पादन संस्करण प्रतीत हो रहा है v4.30319 यानी (सी: \ WINDOWS \ Microsoft.NET \ फ्रेमवर्क \ v4.0.30319)

http://paigecsharp.blogspot.com/2009/08/nant-net-framework-40-configuration.html समीक्षा करने के बाद ... मैं पाठ में चिपकाया और v4 से सभी पाठ बदला .0.20506 से v4.30319 को ने NAnt.exe.config में टेक्स्ट जोड़ा।

मैं तो

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

करने के लिए अपने nant स्क्रिप्ट अद्यतन यह इतना अपने प्रोजेक्ट nant स्क्रिप्ट .net 4 संकलक

का उपयोग करता है और यह मिल गया मुझे एक nant .net 4 द्विआधारी साथ निर्माण ....

अपडेट 2010-06-14: उपर्युक्त उत्तर nant-0.85 के साथ उत्तर दिया गया था, मैं nant-0.90 में अपग्रेड किया गया था और nants config में जोड़े गए फ्रेमवर्क विशेषता में vendor="Microsoft" जोड़ना पड़ा था। इसके अलावा, ऐसा लगता है कि nant0.9 .net पुस्तकालयों अलग ढंग से पाता है, जैसा कि मैंने बस डाल करने के लिए मेरी nant build.xml के लिए कुछ इस तरह जोड़ने के लिए ...

<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" /> 
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" /> 

और

<include name="${dotNetReferenceAssemblyPath}System.ComponentModel.DataAnnotations.dll" /> 
+0

नवीनतम उपलब्ध संस्करण (वर्तमान में 0.91 अल्फा 2) में NANT के संस्करण को अपडेट करने के लिए मुझे यह काम करने के लिए आवश्यक था (निर्माण और कॉन्फ़िगरेशन परिवर्तनों के अतिरिक्त)। बीटीडब्ल्यू, को अंतिम की आवश्यकता नहीं थी। – Catch22

0

था वहाँ की जानकारी तो मैं इसे फिर से मिल सकता है, पथ environement चर को संशोधित करने और उदारीकरण/LIBPATH/चर या vsvars32 से nant चल रहा है, ऐसा ही कुछ Nant कॉन्फ़िग फ़ाइल में की जरूरत है शामिल बनाए बिना C++ का निर्माण करने की परियोजनाओं:

<project> 
    <readregistry 
     property="WindowsSdkDir" 
     key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder" 
     hive="LocalMachine" 
     failonerror="true" /> 

    <readregistry 
     property="installRoot" 
     key="SOFTWARE\Microsoft\.NETFramework\InstallRoot" 
     hive="LocalMachine" /> 
    <readregistry 
     property="sdkInstallRoot" 
     key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" 
     hive="LocalMachine" 
     failonerror="false" /> 
    <readregistry 
     property="vs10Win32Tools" 
     key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-Win32Tools\InstallationFolder" 
     hive="LocalMachine" 
     failonerror="false" />  
    <readregistry 
     property="vcInstallDir" 
     key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VC\ProductDir" 
     hive="LocalMachine" 
     failonerror="true" /> 
    <readregistry 
     property="vs10dbghelp" 
     key="SOFTWARE\Microsoft\VisualStudio\10.0\Setup\Dbghelp_path" 
     hive="LocalMachine" 
     failonerror="true" /> 

    <setenv name="PATH" value="${path::combine(vcInstallDir, 'bin')};${vs10dbghelp};${sdkInstallRoot};${vs10Win32Tools};${environment::get-variable('PATH')};" /> 
    <setenv name="INCLUDE" value="${path::combine(WindowsSdkDir, 'include')};${path::combine(vcInstallDir, 'atlmfc/include')};${path::combine(vcInstallDir, 'include')};${environment::get-variable('INCLUDE')}" /> 
    <setenv name="LIB" value="${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIB')}" /> 
    <setenv name="LIBPATH" value="${path::combine(installRoot, 'v4.0.30319')};${path::combine(installRoot, 'v3.5')};${path::combine(WindowsSdkDir, 'lib')};${path::combine(vcInstallDir, 'atlmfc/lib')};${path::combine(vcInstallDir, 'lib')};${environment::get-variable('LIBPATH')}" /> 
</project> 

रजिस्ट्री पथ VS2010 में से एक है क्योंकि संबंधित एसडीके अपना समय ले रहा है ...

1

मैंने ऊपर दिए गए सभी उत्तरों का उपयोग किया और अभी भी कुछ अजीब बिल्ड त्रुटियों में भाग लिया: "त्रुटि MSB6006:" AL.exe "exited कोड 128 के साथ "। त्रुटि बिल्कुल सहायक नहीं है। मैंने कुछ googling किया और कुछ जवाब के साथ आया था। यहाँ लिंक हैं: msdn help और asp.net forums

मैं एक पूरा दिन के लिए है कि त्रुटि के साथ कुश्ती लड़ी, "विस्तृत" और "नैदानिक" लॉग का अध्ययन है, लेकिन सभी यह था कि मुझे विधानसभा कि इमारत में विफल रहा है की ओर इशारा करते है। कोई विशिष्ट त्रुटि नहीं। मैं इसे अपने स्थानीय बॉक्स पर भी डुप्लिकेट नहीं कर सका।अंत में, मैंने दूसरे लिंक (asp.net forums) में सम्मेलन नामकरण संसाधन फ़ाइलों के बारे में सुझाव देने का निर्णय लिया और ... alleluia! मेरा निर्माण काम करना शुरू कर दिया। मुझे नहीं पता कि निर्माण के कारण विफल होने के कारण क्या हो रहा है, अभी भी उस पर काम कर रहा है, लेकिन मेरा तत्काल लक्ष्य निर्माण कार्य को प्राप्त करना था।

उम्मीद है कि यह किसी और को वहां मदद करता है।

1

NANT 0.86 और बाद में बॉक्स से बाहर चला जाता है। इसे लिखने के रूप में, मैं 0.91 का उपयोग कर रहा हूं।

नेट से डाउनलोड करते समय, अनपॅकिंग से पहले ज़िप फ़ाइल (रीसेट सुरक्षा क्षेत्र) को "unblock" याद रखें।

0

मैं 4.5 के लिए इसी तरह की समस्या हुई, यह मेरी समस्या हल हो जाती:

http://www.donnfelker.com/nant-sdkinstallroot-has-not-been-set/

मैं एक 64 बिट मशीन है, लेकिन .net 32 ​​बिट के रूप में स्थापित किया गया है। SdkInstallRoot सही पथ नहीं ढूंढ पा रहा है। मैंने सही पथ खोजने के लिए अपने रजिस्ट्री संपादक में चेक किया और nant.exe.config में प्रविष्टि को प्रतिस्थापित किया।

मैं बदले गए:

<locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" /> 
इस के साथ

:

<readregistry 
          property="sdkInstallRoot" 
          key="SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools\InstallationFolder" 
          hive="LocalMachine" 
          failonerror="false" />