سؤال

لدي حل أدوات DSL.

أحتاج إلى إضافة إشارة ضعيفة إلى هذا المشروع. نظرًا لأن مشروع DSL Tools DLL قوي ، لا يمكنني استخدام DLL الضعيف.

لا أستطيع أن أجعل DLL اسمًا قويًا لأنني لا أستطيع إعادة ترجمة ذلك.

حاولت جعل مشروع DSL Tools Project ضعيفًا من خلال الانتقال إلى خصائص مشروع DSL و DSLPackage وعدم تحديد خيار "التوقيع على التجميع" في علامة التبويب SIGING.

ثم أقوم بتجميعه. تعطي قائمة الأخطاء الخطأ التالي

"gacutil.exe" exited with code 1

بالنظر إلى نافذة الإخراج VS2005 ، أرى أن gacutil يتم استدعاؤه

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"

بعد ذلك استخدمت موجه الأوامر ويعرض خطأ gacutil.exe على النحو التالي:

Z:\>"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe" -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"
Failure adding assembly to the cache: Attempt to install an assembly without a strong name

لا أعرف لماذا وكيف يتم استدعاء gacutil.exe. نظرت إلى خصائص المشروع والحل ولا يوجد خيار تم تكوينه للاتصال بـ gacutil.exe. حتى أنني نظرت داخل كل ملف لـ "gacutil.exe" لكنني لم أجد شيئًا.

ما أريده حقًا هو أن أكون قادرًا على استخدام DLL الضعيف الذي لا يمكنني أن أحمله قويًا. نتيجة لهذا ، كنت أحاول جعل أدوات DSL DLL الخاصة بي ضعيفة ولكن لا يمكنني ذلك.

أي مساعدة حول كيف يمكنني حل هذا؟

شكرا جزيلا ، لويس فيليب

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

المحلول

يعد استخدام وقت التشغيل مع الانعكاس حلًا جيدًا ويعمل. الحل الآخر الذي قمت بتطبيقه إلى جانب ذلك هو إطلاق AppDomain منفصل وجعل هذا AppDomain يقوم بتحميل التجميع وتشغيل أي طرق تريدها. الجانب السلبي لهذا النهج هو التعقيد والأداء الإضافي. على المرء أن يعرف حقًا ما يفعله لأنه في الممارسة العملية لإطلاق تطبيق .NET منفصل في مساحة عملية Visual Studio. الاتجاه الصعودي هو أنه مع بعض الرعاية ، يمكنك الحصول على سلامة الكتابة على طول الطريق.

نصائح أخرى

باستثناء الإجابة المكتوبة أعلاه ، يجب أن تكون جميع الوظائف الإضافية لـ Visual Studio قوية.

يمكن للمرء أن يحل بعض المشكلات عن طريق تحميل التجميع في وقت التشغيل واستخدام الانعكاس لاستدعاء الأساليب.

التحيات ، لويس

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