فشل بناء NAnt على نظام التشغيل Windows Server 2008 بعد تثبيت ASP.NET 2.0 SDK

StackOverflow https://stackoverflow.com/questions/635224

  •  10-07-2019
  •  | 
  •  

سؤال

أنا أستخدم TeamCity لإدارة أحد مشاريعي ولكن لا يبدو أنه يعمل بشكل جيد مع Nant على Windows Server 2008.ما الذي يمكنني فعله لإصلاح هذا؟

قبل تثبيت ASP.NET 2.0 Framework SDK:

[10:21:07]: BUILD FAILED
[10:21:07]: Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework.
[10:21:07]:     Property evaluation failed.
[10:21:07]: Expression: ${path::combine(sdkInstallRoot, 'bin')}
[10:21:07]:                             ^^^^^^^^^^^^^^
[10:21:07]:         Property 'sdkInstallRoot' has not been set.

بعد:

[11:48:16]: Target framework: Microsoft .NET Framework 2.0
[11:48:16]: Target(s) specified: test 
[11:48:16]:  [property] Target framework changed to "Microsoft .NET Framework 3.5".
[11:48:16]: BUILD FAILED
[11:48:16]: INTERNAL ERROR
[11:48:16]: System.NullReferenceException: Object reference not set to an instance of an object.
[11:48:16]:    at NAnt.Core.FrameworkInfo.get_Version()
[11:48:16]:    at NAnt.Core.Project.UpdateTargetFrameworkProperties()
[11:48:16]:    at NAnt.Core.Tasks.PropertyTask.ExecuteTask()
[11:48:16]:    at NAnt.Core.Task.Execute()
[11:48:16]:    at NAnt.Core.Project.InitializeProjectDocument(XmlDocument doc)
[11:48:16]:    at NAnt.Core.Project.Execute()
[11:48:16]:    at NAnt.Core.Project.Run()
[11:48:16]: Please send bug report to nant-developers@lists.sourceforge.net.
[11:48:16]: Total time: 0.1 seconds.
[11:48:16]: Process exited with code 1
[11:48:16]: Build finished
هل كانت مفيدة؟

المحلول

هناك بعض الأشياء التي قد تسبب هذا.

  1. لم يتم تثبيت .Net 2.0 SDK الكامل.
  2. أنت تفتقد بعض مفاتيح التسجيل.إذا بحثت في سجل جهاز يعمل بنظام Windows XP / vista وبحثت عن sdkInstallRoot فمن المحتمل أن تجده.ثم قم فقط بنسخ الكود إلى الخادم الخاص بك.

ومع ذلك، للتحقق من تثبيت .net Framework sdks على الأقل، ما عليك سوى الانتقال إلى المجلد C:\windows\Microsoft.net والانتقال إلى الإصدار الذي تحتاجه والبحث فيه لمحاولة العثور على csc.exe أو vbc.exe. البرامج.إذا لم تتمكن من العثور عليها، فهذا يعني أنك لم تقم بتثبيت SDK ولكن من المرجح أن يكون وقت التشغيل مثبتًا لديك.

جرب ذلك وانظر إذا كان ذلك يساعد.

نصائح أخرى

  1. يتطلب إدخال .net 3.5 في قسم "الأطر".

  2. يضمن أن Sdkinstallroot للإصدار 3.5 في القسم هو كما يلي، وهو السبب الجذري لهذه المشكلة -
    <readregistry property="sdkInstallRoot" key="SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools\InstallationFolder" hive="LocalMachine" failonerror="false" />

أتمنى أن يساعدك هذا!

عند استخدام نانت مع ملقم 64 بت ويندوز سيرفر 2003 وكان لي لتحميل بناء ليلا كما نانت 0.86 بيتا 1 لديه 64 قضايا قليلا. لم الحصول على عمل ولكني لست متأكدا ما اذا كانت ستعمل مع Windows Server 2008. وكان نانت في بيتا من أي وقت مضى. إذا كنت عالقة في نانت محاولة بناء ليلا إذا لم أوصي MSBuild لصافي 2+ و 64 آلات الشيء.

لمزيد من المعلومات الاختيار من هذه المادة MsBuild مقابل . نانت

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

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

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

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