التبعية التجميعية الموقعة التي تشير إليها يجب أن يكون لدى COM DLL جمعية Interop التي تم إنشاؤها بالإبعاد المشار إليها

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

سؤال

آسف على العنوان الرهيب.

لدي تجميع موقعة "Signed.dll" تعد تبعية تجميع آخر، كما يقول Executeable.exe.

Signed.dll المراجع A COM DLL وتكشف النتيجة واحدة من أنواع COM DLL هذه: "ترجمة".

يجب أن يشير Executable.exe إلى Interop.com.dll التي تم إنشاؤها تلقائيا من المشروع الموقع، بدلا من إضافة مرجع إلى DLL الأصلي COM.

الخطأ هو عدم تطابق النوع بين نوعين مجانيين مختلفين من اثنين من تجميعات com interop المختلفة.

هذا مطلوب فقط إذا تم توقيع Signed.dll.

بخلاف إنشاء نوع يحاكي الترجمة، كيف يمكنني السماح بالتنفيذ المرجعي للإشارة إلى COM DLL بدلا من تجميع COM Interop الموقد؟

لماذا يحدث هذا؟

تحرير، إليك انهيار مختلف إلى حد ما:

مراجع المشروع الموقع COM.DLL، ويزيد نوعا ما من نوع من COM.DLL إضافة هذا المرجع في Visual Studio يقوم تلقائيا بإنشاء Interop.com.dll

المراجع القابلة للتنفيذ وتعتمد على المشروع الموقع بشكل طبيعي يمكنك إضافة مرجع إلى com.dll وكل شيء على ما يرام.

نظرا لأنه تم توقيع الموقع، لا يتم رؤية الترجمة من قبل المحول البرمجي للنوع المعرض للنوع المعرض للنظام من Interop.com.dll

يجب أن يشير الملف التنفيذي يدويا إلى موقع Interop.com.dll الموقعة، والذي يشعر بالتهشئة.

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

المحلول

  1. يجب أيضا توقيع كل جمعية تمت الإشارة إليها بمجموعة موقعة.

  2. عادة يوجد تجميع متعدد الأساسي الموقعة (PIA) الذي يوفره مؤلف COM DLL. يجب أن تكون الجمعية الداخلية الوحيدة لأنواع COM الوالدين المشار إليها بواسطة أي مجموعة .NET.http://msdn.microsoft.com/en-us/library/aax7sdch.aspx. ليس هناك PIA متاح في حالتي.

تختلف جمعيات الترابطين المتداخلين الناتج عن Visual Studio لمشروعي، في توقيع جمعية داخلية واحدة، والآخر غير موقعة.

وبالتالي، تختلف الأنواع الواردة في مجالس الترابط Interop.

أحد الحلول هو إنشاء مجموعة توزيعية واحدة موقعة تمت الإشارة إليها من قبل كلا المشروعين.

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