سؤال

في أحد المشاريع التي أعمل فيها الرمز الأحدث بشكل حيوي في .NET DLL في تجميع موثوق بالكامل باستخدام وظيفة GransoDicetagCode.حتى الآن كان هذا يعمل بنسبة 100٪ دون إصدار.

لدي الآن Visual C ++ DLL التي تم تجميعها مع / clr: pure يحتاج إلى تحميلها باستخدام الأجيال أعلاه.أحصل على BadImageFormateXception عندما أفعل ذلك غريب حقا.

في مشروع Visual C ++، هناك 3 أنواع من خيارات ترجمة CLR:

/ clr

/ clr: pure

/ clr: آمنة

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

لذلك أعتقد أن هذا هو حقا سؤال جزءان:

1) لماذا / CLR: العمل الآمن ولكن ليس آخرين؟

2) كيف يمكنني الحصول عليها للعمل مع / CLR؟

شكرا مقدما!

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

المحلول

بعد البحث، لا يمكن أن تقوم هذه الطريقة بتحميل الجمعيات المختلطة.يمكن أن تكون فقط MSIL نقية.

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