سؤال

أقوم باستدعاء ملف dll غير تابع لـ .NET من مشروعي باستخدام P/Invoc، مما يعني أن ملف .dll يجب أن يكون موجودًا دائمًا في دليل .exe.

هل هناك أي طريقة لإخبار Visual Studio بهذه التبعية، بحيث يقوم تلقائيًا بنسخ ملف .dll إلى دليل الإخراج عند التحويل البرمجي، وسيقوم تلقائيًا بتضمين ملف .dll في الإعداد؟أو هل يجب علي القيام بذلك يدويًا؟

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

المحلول

يمكنك نسخ/ربط هذا الملف (الملفات) بالمشروع، وفي خصائص النوافذ قم بتعيين "Build Action" على "None" و"Copy to Output Directory" على "نسخ إذا كان أحدث" أو "نسخ دائمًا".

أو يمكنك استخدام "أحداث ما قبل البناء" و"أحداث ما بعد البناء" حيث يمكنك تحديد أي نصوص برمجية مجمعة.

أفضّل الخيار الثاني، لأن هذه الطريقة أكثر مرونة من الأولى.

كما يمكنك تعديل ملف MSBuild وإضافة مهمة لنسخ الملف (الملفات).

نصائح أخرى

يمكنك ببساطة إضافة ملف .DLL إلى مشروعك.

حدد Properties جزء لهذا الملف وتعيين Build Action ل Content و Copy to Output Directory ل Copy if newer.

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

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