سؤال

باستخدام VS2005 وVB.NET.

لدي مشروع عبارة عن واجهة برمجة التطبيقات (API) لمخزن البيانات الذي قمت بإنشائه.عندما يتم تجميعها يخلق api.dll.

لدي مشروع ثانٍ في نفس الحل الذي يحتوي على مرجع مشروع لمشروع واجهة برمجة التطبيقات (API) والذي سيتم إنشاؤه عند تجميعه wrapper.dll.يعد هذا في الأساس غلافًا لواجهة برمجة التطبيقات (API) الخاصة بالتطبيق.عندما أستخدم wrapper.dll في هذا التطبيق الآخر، لا بد لي من نسخ wrapper.dll و api.dll إلى تطبيقي الجديد.كيف يمكنني الحصول على مشروع المجمع لتجميع ملف api.dll في حد ذاته بحيث يكون لدي واحد فقط dll يتحرك حول؟

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

المحلول

@Jas، إنها ميزة خاصة في Visual Studio.الإجراء موضح في إدخال المدونة هذا، يسمى "مشاركة ملف مفتاح الاسم القوي عبر المشاريع".المثال مخصص لمشاركة الملفات الرئيسية ذات الأسماء الواضحة، ولكنه سيعمل مع أي نوع من الملفات.

باختصار، انقر بزر الماوس الأيمن على مشروعك واختر "إضافة عنصر موجود".استعرض للوصول إلى دليل الملف (الملفات) الذي تريد ربطه وقم بتمييز الملف أو الملفات.بمجرد الضغط على "إضافة" أو "فتح" (اعتمادًا على إصدار Visual Studio لديك)، انقر فوق السهم الصغير لأسفل الموجود على الجانب الأيمن من هذا الزر.ستشاهد خيارات "فتح" أو "ربط الملف" إذا كنت تستخدم Visual Studio 2003، أو "إضافة" أو "إضافة كرابط" مع 2005 (لست متأكدًا من 2008).على أية حال، اختر الخيار الذي يتضمن كلمة "رابط".بعد ذلك، سيشير مشروعك بشكل أساسي إلى الملف - وسيكون من الممكن الوصول إليه من المشروع الأصلي الذي كان فيه والمشروع الذي "ربطته" به.

تعد هذه طريقة ملائمة لإنشاء تجميع يحتوي على كافة وظائف Wrapper.dll وapi.dll، ولكن عليك أن تتذكر تكرار هذا الإجراء في كل مرة تقوم فيها بإضافة ملف جديد إلى api.dll (ولكن ليس المجمع. دلل).

نصائح أخرى

هناك طريقة أسهل.ما عليك سوى إنشاء اختصارات (تسمى الملفات المرتبطة في Visual Studio-ese) في مشروع Wrapper.dll الخاص بك والتي تشير إلى الملفات المصدر في api.dll.سيؤدي ذلك إلى تجميع المصدر الخاص بك مباشرة في Wrapper.dll.

ربما سيتعين عليك استخدام أداة، مثل ILدمج, ، لدمج الجمعيتين.

أعتقد أنه يمكنك تجميع api.dll كمورد في Wrapper.dll.ثم قم بالوصول يدويًا إلى هذا المورد من api.dll وقم بتحميله يدويًا.لقد قمت بتحميل التجميعات يدويًا من القرص، لذا فإن تحميل واحدة من الدفق لا ينبغي أن يكون مختلفًا.

سأحاول تضمين ملف dll في مشروعك كملف، على غرار تضمين ملف نصي أو ملف xml (بالإضافة إلى مرجع المشروع للتجميع).ثم أقوم بتعيين إجراء الإنشاء على "المورد المضمن". ضمن الغلاف .dll ، سأستخدم كائن التجميع للوصول إلى api .dll تماما مثل أي مورد مضمن آخر.ستحتاج بعد ذلك أيضًا إلى تحميل التجميع باستخدام Assembly.Load http://msdn.microsoft.com/en-us/library/system.reflection.assembly.load.aspx

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