MSDeploy - لا يمكن نشر حزمة .NET V4.5 إلى تجمع التطبيقات V4.0

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

سؤال

بعد ترحيل TeamCity من خادم إلى آخر ، وكذلك التحول إلى Visual Studio 2013 ، يفشل بناءنا عند استخدام MSDeploy لدفع حزمة .zip من TC إلى IIS.

يحتوي تجمع التطبيقات الذي تحاول استخدامه على خاصية "ManagedRuntImVERSION" على "v4.0". يتطلب هذا التطبيق "v4.5"

هذا خطأ غريب لأن خادم IIS الخاص بي قد تم تثبيته .NET 4.5 تم تثبيته ولحسن الحظ والذي تم نشره لأسابيع ، وسيقوم مجموعة تطبيقات 4.0 بتشغيل تطبيق 4.5 مستهدف.

لسوء الحظ ، يتم تشويه المياه من خلال التغييرات التي تطرأ على TC و VS (2013) ، لذا فإن ما تسبب في المشكلة التي لا يمكنني التأكد منها.

ملاحظة: يحتوي خادم TC الخاص بنا على Visual Studio 2012 فقط ، حيث إنني على MSDN وحصلت على الوصول المبكر إلى عام 2013. قد يكون هذا هو الجاني ، ولكنه لا يجعل المشكلة أقل غرابة.

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

المحلول

أفضل عدم تعطيل إصدار وقت التشغيل.

<DeployManagedRuntimeVersion>v4.0</DeployManagedRuntimeVersion>

المزيد من التفاصيل: http://techblog.dorogin.com/2013/11/deploying-45-projects-with-webdeploy.html

نصائح أخرى

افتح .csproj الملف وتعيين العنصر التالي:

<IgnoreDeployManagedRuntimeVersion>True</IgnoreDeployManagedRuntimeVersion>

إن إضافته فوق هذا العنصر يساعد على قابلية القراءة:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

مجد ل https://stackoverflow.com/users/1769923/abhishikt-n-jain للرد على هذا الإعداد التكوين غير المعروف هنا:

MSBuild نشر الفشل بعد الترقية إلى .NET 4.5

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

تحديث

تجاهل تعليقاتي أدناه. بينما تجاوزني النشر ، حصلت على ملف 503 Service Unavailable عندما حاولت بالفعل تشغيل تطبيق الويب. لقد تراجعت عن هذا التغيير عن طريق ضبط managedRuntimeVersion العودة إلى v4.0 وأضاف IgnoreDeployManagedRuntimeVersion إلى مشروعي. ثم نجح النشر وعمل التطبيق. أحمق...


حدث هذا لي بعد تثبيت .NET Framework 4.5.1 على جهاز Windows Server 2008 R2 SP1 (كجزء من ترقية PowerShell).

لا تعطي واجهة مستخدم IIS على Windows Server 2008 خيار إعداد managedRuntimeVersion خاصية إلى v4.5 حتى بعد تثبيت هذا الإصدار. ومع ذلك ، يمكن القيام بذلك على سطر الأوامر باستخدام appcmd الأداة المساعدة كما تظهر إجابة @3boysdad.

appcmd هو ما يعادل سطر الأوامر لإدارة مواقع IIS والتطبيقات والتطبيقات ، وما إلى ذلك. %systemroot%\system32\inetsrv\appcmd.exe لكنه ليس على الطريق كما يشرح الرابط التالي:

http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe#howtouse

أنا أرى أن تعديل مشروعك (عبر IgnoreDeployManagedRuntimeVersion أو DeployManagedRuntimeVersion الخصائص) هو دون المستوى الأمثل. يجب تعيين تجمع التطبيقات لاستخدام V4.5 ، والطريقة الوحيدة للقيام بذلك على Windows Server 2008 هي استخدام appcmd خدمة. يجب أن تكون إجابة 3Boysdad هي الإجابة المقبولة.

وجدت هذه الأحجار الكريمة أثناء البحث حول هذه المشكلة نفسها.

appcmd set apppool /apppool.name: <your app pool> /managedRuntimeVersion:v4.5

يجب تنفيذ هذا في دليل system32 inetsrv.

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