سؤال

لقد قمت بإعداد NANT لإنشاء مشروع ASP.NET MVC الخاص بي وهو يعمل بشكل جيد محليًا. أقوم بإضافة nant إلى مجلد أدوات وأضفه إلى التحكم في الإصدار. يلتقط TeamCity تغييراتي ويبدأ البناء لكنه فشل.

أعتقد أنني أستخدم أحدث إصدار من NANT وقد أضفت .NET Framework 3.5 إلى nant.exe.config. ما الذي أفتقده على الخادم ونعم يتم تثبيت .NET Framework على الخادم حيث يعمل تطبيق ASP.NET MVC إذا قمت بإنشاء ونشره يدويًا؟

ملف البناء كما يلي:

<target name="compile" description="Compiles using the AutomatedDebug Configuration">
    <msbuild project="Tolt.Sims.sln" />
</target>

ها هو الخطأ:

BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set.
For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
هل كانت مفيدة؟

المحلول

إذا كنت تستخدم إصدار BETA من NANT (والتي هي حاليًا هي الطريقة الوحيدة التي ستحصل عليها لاستهداف أي شيء أكبر من إطار 2.0) ، فربما تواجه مشكلة في التسجيل. كانت مشكلة مماثلة ذكرت تيم باركز.

تتجول الأمور إلى حد كبير إلى NantContrib (مزود مهمة MSBuild) تشير إلى إصدار 2.0 من MSBuild. تحقق من حله لمعرفة ما إذا كان ينطبق على السيناريو الخاص بك.

نصائح أخرى

من المحتمل أن يكون لديك .NET Framework 2.0 SDK مثبت.

يمكنك تثبيته منhttp://www.microsoft.com/downloads/details.aspx؟familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en

لقد أصلحت هذا عن طريق إضافة ما يلي في السجل:

قيمة سلسلة جديدة على: hkey_local_machine software microsoft.netframework

اسمه: sdkinstallrootv2.0

مع القيمة: C: Program Files Microsoft Visual Studio 8 SDK V2.0

يبدو أن الربيع في الحياة ...

دبليو: //

تم إصلاح هذا بعد الإصدار 0.86 Beta1. في 1 أبريل 2010 ، تم إصدار 0.90 مع الإصلاح في حالة ترقية NANT هو خيار لك. لتوفير مزيد من التفاصيل ، يبدو أن إصدار الإصلاح في 0.90 كان تغييرات بسيطة على ملف nant.exe.config. تمت إضافة النص الجريء أدناه ومن المحتمل أن يصلح المشكلة دون الحاجة إلى تثبيت 2.0 SDK.

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if = "$ {property :: areg ('sdkinstallroot')}" />

قم بتحديث قسم Net-2.0 لإصلاحه.

نرى http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg07519.html; ؛ إنه خطأ معروف في 0.86 beta1.

لقد واجهت مشكلات مماثلة مع نانت. أعلم أن هذا ليس الأفضل الحل ، ولكنه يعمل إذا كنت بحاجة إلى تحريك مشروعك.

لقد وجدت أن تثبيت بيئة تطوير (لم ينجح C# Express بالنسبة لي ، لكن مقابل 2008) على الخادم يجعل هذه المشكلة تختفي. (نعم ، أدرك أن هذا يتعارض مع أفضل الممارسات العادية ، لكنه يعمل ويتيح لبرامج النصوص أن تعمل حتى أتمكن من العودة إلى الترميز.)

فقط أحسب أنني كنت أشارك أي شخص آخر في موقف مماثل .. (وقد عمل هذا بالنسبة لي مع CruiseControl.net ومع هدسون).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top