Подтвердить что ты не робот

Как устранить неисправность VSTO, которая не загружается?

Моя надстройка Outlook VSTO неожиданно перестала работать на одной машине клиента (она не загружается, не появляется сообщение об ошибке), и я застрял в поиске и устранении неполадок. Машина представляет собой 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 сообщать мне, что неправильно, то есть дать мне полезное сообщение об ошибке вместо того, чтобы просто ничего не делать при попытке включить надстройку. Есть идеи?

4b9b3361

Ответ 1

Попробовал ли вы снова включить надстройку? Он не будет запускаться после его включения в очередь с отключением. После того, как вы снова включите его с экрана с отключенными надстройками, вы можете установить флажок на экране COM-AddIn, чтобы он загружался, а затем он должен высветить вам более подробную информацию, поскольку вы устанавливаете переменную VSTO_SUPPRESSDISPLAYALERTS о том, что могло произойти в первую очередь.

Ответ 2

Вот немного подробнее о решении RobertG5 (слишком долго для комментария):

Проблема заключалась в том, что надстройка была жестко отключена для Outlook. Как я узнал, это нечто иное, чем "обычный" сценарий без загрузки. Ключом к пониманию этого было заметить, что надстройка не отображалась в разделе "Неактивные надстройки приложений", а скорее в разделе "Отключенные приложения". Это имеет значение: в последнем случае просто перейдите на экран COM-AddIn и отметьте этот флажок, ничего не делая. (Я думаю, хороший поле с сообщением "Вы не можете загрузить эту надстройку, потому что она была жестко отключена" было бы слишком много, чтобы спросить... вздох.)

Итак, как я могу снова включить жесткую отключенную надстройку?

  • В поле Управление измените надстройки COM на Отключенные надстройки, а затем нажмите "Перейти".
  • Выберите надстройку и нажмите Включить. Нажмите Закрыть.

ОК, теперь надстройка может быть загружена снова:

  • В поле Управление измените Отключенные надстройки на надстройки COM, а затем нажмите "Перейти".
  • установите флажок рядом с отключенной надстройкой. Нажмите ОК.

Ссылка: http://msdn.microsoft.com/en-us/library/ms268871.aspx

Ответ 3

Я знаю, что это старый, но по разным причинам я недавно исправлял надстройки Office, которые не загружаются.

Его разжевывали кучи времени, поэтому я думал, что буду делиться, поэтому, если ваша надстройка не загрузится или ее не видно или и т.д., попробуйте эти решения.

1). Надстройка не загружена.

Не загружен. Ошибка загрузки во время загрузки надстройки COM.

enter image description here

Проблема связана с отсутствием .Net framework 3.5 или 4.0.

Примечание: на x64 мне нужен только .Net 4.0, однако на ПК x86 я получил ошибку после установки .Net 4.0. После этой статьи я установил .Net 3.5, а затем работал на ПК x86!

2). Надстройка не загружена.

Дважды проверьте правильность написания ключей реестра. Иногда я печатаю Поведение, но в американской орфографии - Поведение, поэтому дважды проверяем "LoadBehavior"

enter image description here

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

3). Надстройка не отображается.

Вы можете сделать надстройку видимой, перейдя в Excel > Файл > Параметры > Надстройки > выберите раскрывающийся список "Управление" и установите его в надстройки COM > Нажмите "GO". В диалоговом окне "Надстройки COM" убедитесь, что надстройка отмечена.

4). Надстройка была отключена.

В качестве альтернативы надстройка может быть скрыта, поскольку она была отключена. Вы можете включить надстройку, перейдя в Excel > Файл > Параметры > Надстройки > выберите раскрывающийся список "Управление" и установите его "Отключено" и нажмите "GO". Выберите надстройку, которая была отключена, и нажмите "Включить".

enter image description here

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

Я бы предложил использовать инструмент Microsoft для диагностики проблем надстройки, называемых AddinSpy.

Ответ 5

Смешно для меня, я попробовал перезагрузку. Исправлено это для меня. Тем не менее, причина, по которой он исправил это для меня, заключается в том, что у меня был скрытый файл Excel.exe. Приложение не запускалось из-за этого другого приложения excel (я переносил приложение MSAccess в VSTO), поэтому Access закрыл приложение для автоматизации.

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

(я использовал эту ссылку) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/

Ответ 6

Здесь также есть другая возможность понять, почему вы не получаете отзывов, даже если указанные выше переменные окружения установлены. Я обнаружил, что если вы получили эту ошибку после установки (а не предыдущий VSTO, который работал), вы также должны дважды проверить реестр и запись "Манифест", если она у вас есть.

В то время как Джереми Томпсон указывает на реестр в своем втором пункте, он не показывает запись манифеста, которая может быть частью ваших настроек реестра. Если ваша запись манифеста не указывает на правильный путь и файл, она будет отображаться в списке надписей с надписью "Не загружена".

Здесь мы видим плохую запись, которая просто указывает только на файл VSTO, нет пути. введите описание изображения здесь

Это приведет к тому, что ваш AddIn будет выглядеть так, как будто он загружен с ошибками, но ошибки не появляются и не появляются для вас и не расстраивают. Таким образом, это будет выглядеть так, как показано ниже, обратите внимание, что запись местоположения ниже также не показывает путь. введите описание изображения здесь

Исправьте запись, введя правильный путь вместе с именем файла, и он исправит это.

Отсутствие ошибок, которые я предполагаю, исходит из того факта, что изначально вы ничего не указывали, поэтому он перечисляет AddIn, потому что он находится в реестре, хотя загружать нечего.

Ответ 7

В конце концов я уговорил 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] Не удалось загрузить файл или сборку или одну из ее зависимостей