سؤال

لدينا موقف حيث سيكون لدينا الوظائف الإضافية VSTO Outlook التي تبدأ مع بعض التعليمات البرمجية المشتركة المشتركة، ولكن الكود المشترك سيختلف على الأرجح مع مرور الوقت. من الناحية المثالية، نود إعادة هيكلة الوظائف الإضافية إلى العوم على الكود المشترك في DLL مشترك منفصل، ولكن لأسباب غير تقنية هذا ليس خيارا الآن. ما هي المشاكل التي تتوقعها إذا تم نشر كلا الوظائف الإضافية على نفس مثيل Outlook؟ هل ترى مشاكل في المحاصيل نظرا لأنه سيكون هناك فئتين بنفس الاسم واسم مساحة الاسم نفسه، ولكن مع تعريفات مختلفة محملة من قبل الوظائف الإضافية المختلفة على نفس مثيل Outlook نفسه؟ أيضا واحدة من الوظائف الإضافية تحتاج إلى استدعاء نموذج في الوظيفة الإضافية الأخرى. هل تعتقد أن هذه ستكون مشكلة في الاختلافات في الكود المشترك؟

على افتراض أننا تمكننا من إعادة هيكلة الوظائف الإضافية لفصل DLL مع جميع التعليمات البرمجية المشتركة، هل ستواجه Outlook مشكلة في إصدارات مختلفة من نفس DLL التي يتم نشرها من قبل الوظائف الإضافية المختلفة؟

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

المحلول

قام مشروعي الحالي بمشاركة رمز مماثل بين VSTO الوظائف الإضافية للكلمة. في الوقت الحالي، نحن نستخدم المراجع إلى المشروع الآخر مع "نسخ المحلي" في وقت الترجمة ولكن أود أن تبديل ذلك للإشارة إلى التعليمات البرمجية المشتركة من GAC، لذلك يتم تحريرها من سيناريو بناء المكون المشترك الذي يتطلب إعادة بناء من جميع المشاريع التي تعتمد عليها.

إذا كانت جميع مكتبة الاتصالات المشتركة الخاصة بك هي "نسخ محلي" أثناء الإنشاء، فلن يكون لديك أي تعارضات اسم / مساحة اسم - ولكن ستحتاج إلى إعادة إنشاء الوظيفة الإضافية التي تتغير رمز المكتبة المشترك. إذا كنت تريد التعامل معها بشكل منفصل، فقم بإنشاء وظيفة إضافية ستكون بمثابة المكتبة، والتي تقوم بتثبيت نسخة من نفسها في GAC حتى تتمكن الوظائف الإضافية الأخرى من استخدامها. لقد قمت بتضمين بعض الروابط التي تظهر كيفية الاتصال الرمز من الوظائف الإضافية الأخرى. في الممارسة العملية، وجدت أنها أوفي قليلا بسبب كونها vsto .NET على أعلى الرمز الأصلي للمكتب.

مراجع:

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