سؤال

يبدو أن هناك (على الأقل) خياران للحصول على Nant لاستخدام ملفات CSProj: باستخدام مهمة nantcontrib أو استخدام msbuild.exe مباشرة (على سبيل المثال، codecampserver.). هل أقرأ هذا الحق، وإذا كان الأمر كذلك، فما هي ميزة استخدام Msbuild.exe عبر مهمة NantContrib؟

هل كانت مفيدة؟

المحلول

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 للحصول على إصدارات مختلفة من .NET

  • 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.x، 4.6.x، 4.7.x C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

لبناء 32 بت، والتغيير Framework64 ل Framework

تحديثمتابعة بعض التعليقات، value يتم استخدام السمة لمعلمات لا تحتوي على مسافات. line يستخدم في المعلمات التي يجب تحديدها بسبب المسافات. خلاف ذلك، سيستخدم التطبيق المساحة كنهاية الإدخال.

نصائح أخرى

هنا هدف بسيط

    <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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top