لن يتم تحميل الوظيفة الإضافية لـ Outlook 2003، ولكنها تعمل بشكل جيد

StackOverflow https://stackoverflow.com/questions/5404615

سؤال

لقد قمت بإنشاء وظيفة Outlook الإضافية للأعوام 2003 و2007 و2010.تعمل الوظيفة الإضافية بشكل جيد في عامي 2007 و2010، ولكن لا يتم تحميلها بشكل صحيح في عام 2003 على أي جهاز، بخلاف جهاز التطوير الخاص بي.لا توجد مشكلات في التعليمات البرمجية، حيث لا توجد أخطاء تظهر في سلوك التحميل، وهو ليس عنصرًا معطلاً.ولا تظهر الوظيفة الإضافية أيضًا في قائمة وظائف COM الإضافية.لقد عملت هذه الوظيفة الإضافية ضمن عام 2003 سابقًا.

وهنا الجزء الغريب.لدي نسخة من الوظيفة الإضافية من وقت سابق، لذلك لا تحتوي على بعض ميزات الإصدار الكامل.يتم تحميل هذه الوظيفة الإضافية بشكل صحيح في عام 2003.لذلك كجزء من الاختبار، قمت بتثبيت الإصدار السابق على جهاز افتراضي (سأسميه امتحان) والإصدار الحالي الذي لا يعمل (سأسميه ممتلىء).في التسجيل ضمن HKCU > البرامج > الفئات > CLSID > [[guid]] > InprocServer32، ​​لـ امتحان الإصدار لقد قمت بتغيير مفتاحي "موقع البيان" و"اسم البيان" ليكونا قيمتين ممتلىء إصدار.ثم قمت بتشغيل Outlook، وكان الإصدار الكامل يعمل بشكل مثالي.

لا أستطيع أن أرى كيف ممتلىء الوظيفة الإضافية لا تعمل ضمن إعدادات التسجيل الخاصة بها، ولكنها تعمل بشكل جيد ضمن إعدادات التسجيل امتحان's، وفقط في Outlook 2003.

إليك المعلومات الأساسية:

إعداد التطوير الخاص بي هو:

  • ويندوز 7 64 بت
  • تم تثبيت برنامج أوتلوك 2003
  • تشغيل VS2008 لمشروع الوظيفة الإضافية، ولكن أيضًا استخدام VS2010 لتجميع القمر الصناعي.
  • تم تضمين مشروع Set Security وتعديله للسماح لتجميعات متعددة بتعيين CASPol.

تم تضمين المتطلبات المسبقة التالية في مشروع الإعداد:

  • نت 2.0
  • .نت 3.5SP1
  • Office 2003 PIA (أيضًا 2007 و2010 PIAs لعامي 2007 و2010 على التوالي)
  • وقت تشغيل فستوس
  • مثبت ويندوز 3.1

سيكون موضع تقدير كبير أي تلميحات، حيث أمضيت ما يقرب من 4 أيام في هذه المسألة!

تيا.


التحديث 1:

وفقًا لتعليقات @JoaoAngelo، قمت بفحص إعدادات التسجيل، وهي كما يلي:

HKCU > البرامج > الفئات > CLSID > {ad-in CLSID} > InprocServer32

 - (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
 - ManifestLocation - path to the containing folder
 - ManifestName - the .dll.manifest file name
 - ThreadingModel - 'Both'

HKCU > البرامج > Microsoft > Office > Outlook > الوظائف الإضافية > MyAddin

 - (default) - not set
 - CommandLineSafe - '1'
 - Description - a string
 - FriendlyName - add-in ID
 - LoadBehavior - '3' (this never gets set to 2, which would indicate an issue)
 - Manifest - path to the .dll.manifest of the add-in assembly
 - Path - path to the containing folder

أضفت أيضًا ما يلي تحت الأخير، وفقًا لـ صفحة النشر, ، ولكن دون جدوى:

 - ManifestLocation 
 - ManifestName

التحديث 2:

حسب تعليقات 0xA3؛ضمن HKCR > MyAddin لدي مفتاح CLSID بقيمة سلسلة واحدة:

(default) - {add-in CLSID}

CLSID هو نفسه الذي يظهر في HKCU > Software > Classes > CLSID وفي جميع أنحاء السجل.

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

المحلول

تمكنت أخيرًا من العثور على المشكلة ، فقد كانت متعلقة بالسجل.

خططت في الأصل لامتلاك وظائف إضافية منفصلة لكل إصدار من Outlook ، وعلى هذا النحو كانت مساحات الأسماء واصطلاحات التسمية وما إلى ذلك:

  • [الشركة] .AddIns.Outlook2003
  • [الشركة] .AddIns.Outlook2007
  • [الشركة] .AddIns.Outlook2010

ومع ذلك ، تمكنت من إنشاء الوظيفة الإضافية لاستهداف الثلاثة ، لذلك أعدت تسمية [الشركة] .AddIns.Outlook2003 لتصبح [الشركة] .AddIns.Client.

لقد قمت بتغيير إعدادات التسجيل لـ HKCU> البرامج> Microsoft> Office> Outlook> الوظائف الإضافية> MyAddin ، للإشارة إلى التغيير الموضح ، ولكن لسبب ما لم أقم بتحديثه ضمن HKCU> البرامج> الفئات.

بمجرد أن قمت بتغيير الإعدادات الأخيرة في VS ، نجحت!

للإشارة ، تم إجراء التغييرات في VS ضمن مشروع الإعداد ، ضمن عرض> السجل.

من المزعج بعض الشيء أن هذه المشكلة لم تظهر في الفترة 2007/2010 ، حيث ربما كان من الأسهل تتبعها.

نصائح أخرى

إذا لم تكن قد قمت بذلك بالفعل، فيجب عليك تعيين متغيرات البيئة التالية لمساعدتك في استكشاف مشكلات تحميل الوظيفة الإضافية وإصلاحها:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

سيؤدي الأول إلى إنشاء ملف *.log في الدليل الذي يحتوي على تجميعات الوظيفة الإضافية وسيؤدي الثاني إلى تمكين ظهور النوافذ المنبثقة للأخطاء عند بدء تشغيل التطبيق المستهدف، في هذه الحالة Outlook.

أنت تقول أيضًا أنه في مربع التطوير الخاص بك مع Office 2003، تعمل الوظيفة الإضافية بشكل صحيح.نظرًا لأن Visual Studio يقوم تلقائيًا بتسجيل الوظيفة الإضافية في مربع التطوير عند إجراء عملية إنشاء، فيجب عليك التأكد من إنشاء جميع مفاتيح التسجيل الضرورية في الإعداد.يمكنك التحقق من إدخالات التسجيل المطلوبة القسم في مقالة MSDN التالية للتحقق من أن لديك المفاتيح الصحيحة التي يتم إنشاؤها في الإعداد:

نشر الوظائف الإضافية على مستوى التطبيق

أوصي باتباع خطوات تحري الخلل وإصلاحه الموضحة هنا:

حامد أحمدي: لا يتم تحميل الوظيفة الإضافية لمكتبي!

هل أنت متأكد من أن الوظيفة الإضافية لم يتم تعطيلها بواسطة Outlook لسبب ما؟إذا قمت بتثبيته على مستوى الجهاز (على عكس مستوى المستخدم) فلن يظهر في قائمة Com add in على أي حال.ربما حاول تثبيته كإضافة لكل مستخدم (لذا فهو يظهر في القائمة) وانتقل من هناك؟

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