سؤال

أحاول إضافة .NET 4.0 .dll إلى GAC. أحاول القيام بذلك لأنه يتم نشره من قبل شركة طرف ثالثة باعتبارها 32 و 64 بت. DLL والتي يجب أن أستخدمها من تطبيقات مختلفة على منصات مختلفة في كلا التنسيقين.

على أي حال ، أواجه مشكلة في تسجيل DLL لهذا GAC على بيئة Windows Server 2008.

لقد حاولت نسخ gacutil.exe (وملف الدعم) الموجود في "C: Program Files (x86) Microsoft SDKS Windows V7.0a bin netfx 4.0" على الجهاز المحلي الخاص بي إلى "C: Windows microsoft.net Framework v4.0.30319 "المجلد على خادم الإنتاج المستهدف لكل اقتراحات موجودة هنا.

ثم حاولت نسخهم إلى "C: Windows Microsoft.net Framework64 v4.0.30319".

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

  • C: Windows Microsoft.net Assembly gac_64 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
  • C: Windows Microsoft.net Assembly gac_32 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll

ومع ذلك ، فإن تشغيل تطبيق وحدة تحكم يشير إلى الإصدار (64 بت) من أخطاء DLL مع الرسالة التالية:

System.io.filenotfoundException: لا يمكن تحميل ملف أو تجميع "ChilkatDotnet4.dll" أو أحد تبعياته. تعذر العثور على الوحدة النمطية المحددة. اسم الملف: 'chilkatdotnet4.dll'

لذا ، قمت الآن بإنشاء إدخالات GAC التالية يدويًا باستخدام MKDIR ونسخ من موجه الأوامر (والتي قد تعمل أو لا تعمل بالفعل. ليس لدي أدنى فكرة عن ما هو مميز حول gacutil.exe):

  • C: Windows Microsoft.net Assembly gac_msil chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll (باستخدام إصدار 64bit من DLL)
  • C: Windows Assembly gac_64 chilkatdotnet4 v4.0_9.0.8.0__eb5fc1fc52ef09bd chilkatdotnet4.dll
  • C: Windows Assembly gac_32 chilkatdotnet4 v4.0_9.0.8.0__EB5FC1FC52EF09BD chilkatdotnet4.dll

بعد كل "تثبيت" من DLL ، اختبرت وتلقيت نفس الخطأ. أي أفكار مرحب بها!


تعديل: قد لا تكون مشكلة GAC أعلاه في الواقع الجاني. تبين ، حتى عندما أقوم بإنشاء مشروع تطبيق وحدة تحكم جديد وأضف .DLL مباشرة (بحيث يعيش في الصندوق) ، ما زلت لا أستطيع تشغيله على الفصل. أيضًا ، لاحظت أنه يتم إنشاء تطبيقات وحدة التحكم تستهدف ملف تعريف العميل .NET 4.0 بدلاً من .NET Framework 4. عندما أحاول تشغيلها لاستهداف ملف تعريف العميل ، يبدو أن أي من مكتبات System.Web* متوفرة . ومع ذلك ، حاولت تشغيل أ بسيط جدا اختبار التطبيق الذي يستهدف كلاهما ولن يعمل على الخادم أثناء الرجوع إلى السيئ .DLL.

هل هناك نوع خاص من التثبيت كان سيحدث لتشغيل تطبيقات وحدة التحكم .NET 4.0؟

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

المحلول

لأي شخص آخر قد يواجه مشكلة مع هذا في المستقبل. لم تكن مشكلة معممة في الطريقة التي كنت أسجل بها DLL إلى GAC أو كيف كنت أشير إليها من مشاريعي.

تم تصميم chilkatdotnet4.dll (والإصدارات الأخرى التي أنا متأكد) في C ++ بصرية. لذلك ، يجب نشر الخادم الذي يتم نشره على وقت تشغيل C ++ Visual لعمارة المعالج المناسبة.

لعام 2010 (.NET 4.0):

إذا كنت تقوم بتشغيل تطبيق X86 على منصة 64 بت. تأكد من وضع علامة على تجمع التطبيقات مع "تمكين تطبيقات 32 بت" = صواب.

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