Як усунути неполадки, які не завантажуються з VSTO-адресою?


76

Мій надбудова VSTO Outlook раптово перестав працювати на одній машині клієнта (вона не завантажується, повідомлення про помилку не з’являється), і я застряг у вирішенні проблем. Машина - Windows 7 x86, Outlook 2007. Надбудова написана у Visual Studio 2008 і використовує VSTO 2005 з PIA 2003 (оскільки нам також потрібно підтримувати Outlook 2003). Це чудово працює на інших машинах.

Ось те, що я намагався отримати корисний результат усунення несправностей:

Нічого. Надбудова просто не буде завантажуватися , не даючи жодних - або вказівок про причини. Я також перевірив "звичних підозрюваних" (політика CAS, встановлені PIA, LoadBehavior в реєстрі, перевстановлення VSTO та надбудови).

Деякі інші спостереження:

  • LoadBehaviorв реєстрі залишається на 3.
  • Надбудова відображається як "вимкнена" в Outlook. Позначення його прапорця в "надбудовах COM" просто нічого не робить (помилки немає, прапорець знову знімається при введенні форми вдруге).
  • Це чудово працює на інших машинах замовника, і на цій машині він чудово працював. (Ні, клієнт не може сказати мені, що змінилося на його машині.)
  • У мене є Trace.WriteLineповідомлення в самому верху мого коду (перший рядок у ThisAddIn_Startupобробнику), якого не було досягнуто (я перевірив за допомогою DebugView ). Таким чином, причина не завантаження - не виняток у моїй надбудові, а скоріше збій VSTO для завантаження надбудови або Outlook для завантаження VSTO.

Замість більш випадкових налагоджень ("спробуй це ...", "спробуй це ..."), я б дуже хотів змусити Outlook та / або VSTO повідомити мені, що не так , тобто надати мені замість цього корисне повідомлення про помилку просто нічого не робити, намагаючись увімкнути надбудову. Будь-які ідеї?


9
Це питання стосується VSTO для надбудови Outlook, але проблема полягає в загальній проблемі Office. Питання та відповіді на нього допомогли мені з надбудовою Excel 2010.
Дірк Брокгаус

2
+1 за ознайомлення зі змінною середовища VSTO_SUPPRESSDISPLAYALERTS
Енді МакКлуггадж

1
@Heinzi - дякую, що задали це запитання, я додав більшість інших рішень, які спонукають людей. Інваліда легко виправити, якщо це не сталося на citrix ...
Джеремі Томпсон,

Також см це для Outlook 2007 зміни LoadBehavior 0: stackoverflow.com/questions/7691372 / ...
ALEXANDRU

Ви перевірили, чи файл маніфесту присутній у правильному місці? Також перевірте, чи запис реєстру цієї надбудови присутній чи не в обох гілках, HKLM та HKCU.
Ajit Medhekar

Відповіді:


53

Ви знову спробували ввімкнути надбудову? Він не буде працювати після його вимкнення в черзі. Після того, як ви знову ввімкнете його з вимкненого екрана надбудови, ви зможете встановити прапорець на екрані COM-AddIn, щоб він завантажився, що потім повинно запропонувати вам докладніше, оскільки ви встановлюєте VSTO_SUPPRESSDISPLAYALERTSзмінну про те, що могло статися в першій місце.


5
Саме в цьому проблема: я встановлюю прапорець на екрані COM-AddIns, натискаю кнопку ОК, знову ввожу екран COM-AddIns, і поле знову не знімається. Немає жодного повідомлення про помилку.
Heinzi

3
Я маю на увазі перевірку відключеної черги додатків (а не вашої непровіреної надбудови). У типі надбудови випадає його останній елемент у списку. Це як чистилище для потенційно поганих надбудов.
Гарднер,

2
+1, ти маєш рацію, звичайно. Вибачте, що вперше прочитали вашу відповідь неправильно (до цього голосу не від мене). Я позначу вашу як відповідь, але свою відповідь я збережу і тут, оскільки це трохи детальніше.
Хайнзі,

1
Здається, якщо плагін виходить з ладу, він буде доданий до вимкнених плагінів. Я не впевнений, що плагін аварійно розбивався занадто багато разів, або Outlook визначив, що тип аварійного завершення роботи був достатньо серйозним, у будь-якому випадку спочатку його потрібно видалити звідти. Спроба його ввімкнути інакше не буде працювати.
Мафін

1
Якщо у вас все ще виникають проблеми, спробуйте обернути все в програмі, запустіть у try catch.
Мафін,

56

Ось трохи докладніше про рішення RobertG5 (занадто довго для коментарів):

Проблема полягала в тому, що надбудова важко вимкнула Outlook. Як я дізнався, це щось інше, ніж "звичайний" сценарій незавантаження. Ключем до реалізації цього було помітити, що надбудова не відображалася під надбудовами «Неактивні програми» , а навпаки, під надбудовами «Відключені додатки» . Це має значення: в останньому випадку просто перехід на екран COM-AddIn і встановлення прапорця просто нічого не робить. (Напевно, приємне вікно повідомлення "Ви не можете завантажити цю надбудову, оскільки її важко відключено" було б занадто багато, щоб просити ... зітхати .)

Отже, як мені знову ввімкнути надбудову з жорстким відключенням?

  1. У полі Керування змініть надбудови COM на Вимкнені надбудови , а потім натисніть кнопку Перейти.
  2. Виберіть надбудову та натисніть Увімкнути . Клацніть Закрити .

Добре, тепер надбудову можна завантажити знову:

  1. У полі Керування змініть Вимкнені надбудови на Надбудови COM , а потім натисніть кнопку Перейти.
  2. встановіть прапорець біля вимкненої надбудови. Клацніть OK .

Довідково: http://msdn.microsoft.com/en-us/library/ms268871.aspx


3
Чудово. Дякую за довідку. Додаю, що для програм Microsoft Office 2003 список вимкнених аддінів розміщується в меню "Довідка-Про програму".
Бугір

47

Я знаю, що це застаріле, але з різних причин нещодавно я вирішував проблеми з надбудовами Office, які не завантажуються.

Її згризло купу часу, тому я подумав поділитися, тож, якщо ваша надбудова не буде завантажена або її не буде видно, тощо, спробуйте ці рішення.

1. Надбудова не завантажена.

Не завантажено. Під час завантаження надбудови COM сталася помилка виконання.

введіть тут опис зображення

Проблема пов’язана з відсутністю .Net framework 3.5 або 4.0.

Примітка. Якщо версія Office 64-розрядна (x64), мені потрібен лише .Net 4.0. Однак, якщо офісна версія 32-розрядна (x86), я також отримую помилку після встановлення .Net 4.0. Слідом за цією статтею я встановив .Net 3.5, а потім він працював на x86 Office!

Крім того необхідно встановити VSTO Час відтворення 3.0 Форми тут .

2. Надбудова не завантажена.

Перевірте, чи правильно ви написали ключі реєстру. Час від часу я ввожу поведінку, але в американській орфографії це поведінка, тому перевірте "LoadBehavior"

введіть тут опис зображення

Також переконайтеся, що значення "LoadBehavior" дорівнює 3, список значень див. На веб-сайті http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior

3. Надбудова не видно.

Ви можете зробити надбудову видимою, перейшовши в Excel> Файл> Параметри> Надбудови> виберіть спадний список Керування та встановіть його на надбудови COM> Клацніть ПЕРЕЙТИ. У діалоговому вікні надбудов COM переконайтеся, що надбудова встановлена.

4. Надбудову було вимкнено.

В якості альтернативи надбудова може бути прихована, оскільки її вимкнено. Ви можете ввімкнути надбудову, перейшовши в Excel> Файл> Параметри> Надбудови> виберіть спадний список Керування та встановіть його Вимкнено та натисніть GO. Виберіть надбудову, яку було вимкнено, і натисніть Увімкнути.

введіть тут опис зображення

5. Визначена користувачем формула ExcelDNA відображається неправильно

Замість того, щоб побачити значення комірки, ви бачите: #NAME?

Встановіть такий ключ реєстру:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options\OPEN:

З правильним значенням:

/R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll"

6. Excel HANGS після показу вікна повідомлень

Повторно ввімкніть налаштування програми:

xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.UserControl = true;
xlApp.EnableEvents = true;

7. Подальше усунення несправностей

Увімкніть файл журналу VSTO, додавши до змінних системного середовища наступне:

NAME: VSTO_LOGALERTS
VALUE: 1

Можливо, сталася помилка винятку, тому ваша надбудова не завантажується.

Ви можете перевірити це джерело для отримання додаткової інформації щодо ведення журналу VSTO та попереджень, але по суті ви змінюєте два значення змінних середовища залежно від того, що вам потрібно зробити:

Відображення запитів сповіщення VSTO

Щоб відображати кожну помилку у вікні повідомлення, встановіть змінну VSTO_SUPPRESSDISPLAYALERTS на 0 (нуль). Ви можете придушити повідомлення, встановивши для змінної значення 1 (один).

Запис попереджень VSTO у файл журналу

Щоб записати помилки у файл журналу, встановіть для VSTO_LOGALERTSзмінної значення 1 (один).

Visual Studio Tools for Office створює файл журналу в папці, що містить маніфест програми. За замовчуванням ім'я .manifest.log. Щоб припинити реєстрацію помилок, встановіть для змінної значення 0 (нуль).


4). Надбудову вимкнено. -> що це зробило для мене!
gilu

ManageПотрібно встановити, щоб це Disabled Itemsбуло для мене. Дякую!
ΩmegaMan

7

Я б запропонував використовувати інструмент Microsoft для діагностики проблем надбудови під назвою AddinSpy .


Випробувавши всілякі речі, цей інструмент працював у мене. Виявляється, додаток завантажувався, але якась інша залежність (dll) не завантажувалась, оскільки "Ця збірка побудована в середовищі виконання, новішому від завантаженого в даний час, і не може бути завантажена". AddinSpy допоміг мені отримати це повідомлення про помилку.
floatingfrisbee

Це справді розчаровує, що мертва ланка. Думаю, це допомогло б мені вирішити мою проблему.
RubberDuck

Можливо, ви захочете знайти місце для завантаження. Ось сторінка, щоб побачити, як це виглядало: msdn.microsoft.com/en-us/library/cc984533%28v=office.12%29.aspx
Cédric Guillemette

1
Якщо ви не проти побудувати його самостійно, (неофіційне) джерело AddInSpy доступне на GitHub: github.com/NetOfficeFw/AddInSpy
Джон Ілес,

1

Смішно для мене, я спробував перезавантажити. Виправив це для мене. Однак причиною, за якою це виправлено для мене, є те, що у мене був схований неправдивий Excel.exe. Аддін не запускався через роботу цієї іншої програми excel (я мігрував програму MSAccess до VSTO), тому програма Access мала відкриту програму автоматизації.

Коротше кажучи, якщо ваш адмін не запускається, швидко перевірте, чи просто не перезапустити інші програми Excel. Це, звичайно, стосується лише тих випадків, коли ви намагаєтесь встановити / запустити абсолютно новий.

(Я використав це посилання) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/


1

Тут також існує ще одна можливість, чому ви не отримуєте зворотного зв'язку навіть із зазначеними вище змінними середовища. Я виявив, що якщо ви отримували цю помилку після встановлення (а не попереднього VSTO, який працював), вам слід ще раз перевірити реєстр та "Маніфест" запис якщо він є.

Хоча Джеремі Томпсон вказує на реєстр у своєму другому пункті, він не показує запис Маніфесту, який може бути частиною налаштувань вашого реєстру. Якщо ваш запис у Маніфесті не вказує на правильний шлях та файл, він з’явиться у списку надбудов із записом "Не завантажено" .

Тут ми бачимо поганий запис, який просто вказує лише на файл VSTO, а не шлях. введіть тут опис зображення

Це призведе до того, що ваш AddIn буде виглядати так, ніби він завантажений помилками, але жодні помилки не з’являються і не з’являються для вас, а також викликають неприємності. Отже, це буде виглядати так нижче, зауважте, що введене розташування нижче також не відображає шлях. введіть тут опис зображення

Виправте запис, вказавши правильний шлях разом з ім'ям файлу, і це виправить.

Відсутність помилок, на мою думку, пов’язано з тим, що ви спочатку не вказували ні на що, тому в ньому вказано AddIn, оскільки він є в реєстрі, хоча завантажувати нічого.


0

Врешті-решт я підмовив Word сказати мені:

    Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateStartupObjectException: 
Could not create an instance of startup object blaghblagh ---> 
System.TypeInitializationException: The type initializer for 'foo' threw an exception. ---> 
System.IO.FileNotFoundException: Could not load file or assembly 'blah' or one of its dependencies. 
The system cannot find the file specified.

Після цього, завдяки [1], FusLogvw швидко вирішив проблему для мене.

[1] Не вдалося завантажити файл чи збірку або одну із залежностей

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.