سؤال

أرغب في تثبيت مجموعات التطبيقات الخاصة بي بشكل موثوق في GAC عندما أقوم بتجميع طلبي باستخدام Visual Studio. لقد قمت بإعداد أحداث ما قبل وبعد البناء في بناء تطبيق الويب الخاص بي.

حدث ما قبل البناء:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /ul Uninstall.Gac.txt

حدث ما بعد البناء:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /il Install.Gac.txt
%windir%\system32\inetsrv\appcmd.exe recycle apppool -apppool.name:"Sharepoint IIS WebApps"

كما ترون ، فأنا أقوم أيضًا بإعادة تدوير تجمع تطبيقات الويب الخاص بي للتجميعات الجديدة لبدء العمل.

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

أود أن أجعل هذه العملية موثوقة قدر الإمكان. أرغب في إلغاء التثبيت والتجميعات المشروط إذا كانت حاضرة وتثبيتها بالقوة بغض النظر عما إذا كانت هناك أم لا ... ولكن حدث ما قبل المبنى لا يزال مهمًا للسبب التالي:

مهم

من المهم أن يتم إلغاء تثبيت جميع تجميعاتي تمامًا قبل أن يتم البناء ، وإلا فإنها لم يتم نسخها إلى دليل الإخراج الخاص بي (نظرًا لأن برنامج التحويل البرمجي يجدها في GAC) ، فإن تثبيت GAC يفشل لأنه لا يمكن العثور على مجموعات في مجلد الإخراج bin.

كيف يجب أن أقوم بإلغاء تثبيت GAC وتثبيته بشكل موثوق؟

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

المحلول

بدلاً من ذلك ، على أداة GacuTil ، ألا يمكنك برمجة تثبيت/إلغاء تثبيت GAC؟ مع الكود ، يمكنك على الأقل الاعتماد على رموز خطأ Hresults والرد وفقًا لذلك.

يمكن العثور على معلومات حول واجهة برمجة تطبيقات GAC هنا:

http://blogs.msdn.com/b/junfeng/archive/2004/09/14/229649.aspx

نصائح أخرى

إذا نجح البناء ، فقم بنسخ مجموعات الإخراج إلى دليل آخر وتثبيته في GAC من هناك. وفي وقت ما قبل البناء ، استخدم هذا الدليل لإزالة هذه التجميعات من GAC.

وبهذه الطريقة يجب ألا يكون هناك أي تجمعات في GAC أثناء التجميع. يمكنك تعديل ما بعد البناء لنسخ الثنائيات فقط إذا تم بناء جميعها بنجاح عن طريق التحقق في ملف الدُفعات في حالة وجود جميع ملفات الإخراج.

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