سؤال

أنا أتصل بـ DLL غير المدير من رمز C# المدار وأردت التحقق من الاتصال بالإصدار الصحيح.

الكود الذي أحاول تحميله التجميع (إلى بعد ذلك الحصول على ملف المورد ثم الحصول على الإصدار) هو: cur_version = assembly.loadfile ("x: workspace yreceipts_pos yrprintprocessor debug yrprintprocessor.dll") ؛ إنه فشل بسبب هذا الخطأ:The module was expected to contain an assembly manifest. (Exception from HRESULT: 0x80131018)

هل يعرف أي شخص كيفية الالتفاف على هذا أو لديه طريقة أفضل للتحقق من إصدار DLL غير المدير من رمز C# المدارة؟

شكرا مقدما ، ريتشارد

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

المحلول

كما ذكر logicnp ؛ Assembly.load مخصص للتجميعات المدارة فقط. لتحديد إصدار أي ملف إصدار-يمكنك استخدام system.diagnostics.fileversioninfo.getversioninfo (اسم الملف) ولتحميل الإجراءات غير المدارة والاتصال بها في DLLs ، يمكنك الرجوع إلى هذه المقالات:

http://blogs.msdn.com/jonathanswift/archive/2006/10/02/780637.aspx http://blogs.msdn.com/jonathanswift/archive/2006/10/03/dynamically-calling-an-unmanaged-dll-from-net-_2800_c_23002900_.aspx

حظا طيبا وفقك الله...

نصائح أخرى

السبب في فشله هو أنه لا يمكنك استخدام التجميع. تحميل لتحميل DLL غير المدارة. انظر الرابط الذي اقترحه ديفيد براون.

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