Как устранить неполадки VSTO addin, который не загружается?
моя надстройка VSTO Outlook внезапно перестала работать на одной машине клиента (она не загружается, нет сообщения об ошибке), и я застрял с устранением неполадок. Машина является Windows 7 x86, Outlook 2007. Надстройка написана с помощью Visual Studio 2008 и использует VSTO 2005 с помощью PIAs 2003 (поскольку нам также необходимо поддерживать Outlook 2003). Он отлично работает на других машинах.
вот что я пытался получить полезный вывод по устранению неполадок:
-
добавить the
VSTO_SUPPRESSDISPLAYALERTS
переменные среды (значение0
). - запустите Outlook с правами администратора.
- посмотрите в журнал событий.
ничего. Надстройка просто не будет загружаться, не давая любой указанием причины. Я также проверил "Обычные подозреваемые" (политика CAS, установленные PIAs, LoadBehavior в реестре, переустановка VSTO и надстройки).
некоторые другие замечания:
-
LoadBehavior
в реестре остается на3
. - надстройка отображается как" отключена " в Outlook. Проверка его флажка в "COM add-ins" просто ничего не делает (нет ошибки, флажок снова очищается при вводе формы во второй раз).
- оно работает совершенно отлично на других машинах клиента, и оно работало совершенно отлично на этой машине. (Нет, клиент не может сказать мне, что изменилось на его машине.)
- у меня есть
Trace.WriteLine
сообщение в самом верху моего кода (первая строка вThisAddIn_Startup
обработчик), который не достигнут (я проверил с DebugView). Таким образом, причина не загрузки не является исключением в моей надстройке, а скорее сбоем VSTO для загрузки надстройки или Outlook для загрузки VSTO.
вместо более случайной отладки ("попробуйте это...", "попробовать это..."), Мне бы очень хотелось force Outlook и / или VSTO, чтобы сказать мне, что случилось, т. е. дать мне полезные ошибки сообщение вместо просто ничего не делать при попытке включить надстройку. Есть идеи?
7 ответов
вы снова пытались включить надстройку? Он не будет работать после его в отключенной очереди. После повторного включения его с экрана отключенной надстройки вы можете установить флажок на экране COM-AddIn, чтобы загрузить его, который затем должен запросить более подробную информацию, так как вы установили VSTO_SUPPRESSDISPLAYALERTS
переменная о том, что могло произойти в первую очередь.
вот немного более подробно о решении RobertG5 (слишком долго для комментария):
проблема была в том, что надстройка была жесткий инвалидов в Outlook. Как я узнал, это нечто отличное от "обычного" сценария без загрузки. Ключом к пониманию этого было заметить, что надстройка не отображается под Неактивные Надстройки Приложений, а при Отключенные Надстройки Приложений. Это имеет значение: в последнем случае, просто перейдите на экран com-AddIn и отметьте флажок, просто ничего не делает. (Я думаю, что хорошее окно сообщения "Вы не можете загрузить эту надстройку, потому что она была отключена" было бы слишком много, чтобы спросить... вздох.)
Итак, как повторно включить надстройку с жестким отключением?
- на управление
Я знаю, что это старый, но по разным причинам я недавно устранял неполадки надстроек Office, которые не загружаются.
его жевал кучу времени, поэтому я думал, что поделюсь, поэтому, если ваша надстройка не будет загружаться или ее не видно или и т. д., Попробуйте эти решения.
1). Надстройка не загружается.
Не загружается. Во время загрузки надстройки COM произошла ошибка выполнения.
проблема из-за отсутствует .Net framework 3.5 или 4.0.
Примечание: на x64 мне нужен только .Net 4.0, однако на x86 ПК я получил ошибку после установки .Net 4.0. После этого статьи я также установил .Net 3.5, а затем он работал на ПК x86!
2). Надстройка не загружается.
дважды проверьте правильность написания разделов реестра. Иногда я печатаю поведение, но в американском правописании это поведение, поэтому дважды проверьте "Loadbehavior в"
также убедитесь, что "LoadBehavior" равно 3, для списка значений см. http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior
3). Надстройка не отображается.
вы можете сделать надстройку видимой, перейдя в Excel > Файл > Параметры > надстройки > выберите раскрывающийся список управление и установите его в COM надстройки > нажмите GO. В диалоговом окне надстройки COM убедитесь, что надстройка тикавший.
4). Надстройка была отключена.
в качестве альтернативы надстройка может быть скрыта, потому что она была отключена. Вы можете включить надстройку, перейдя в Excel > Файл > Параметры > надстройки > выберите раскрывающийся список управление и установите его отключенным и нажмите кнопку Перейти. Выберите отключенную надстройку и нажмите кнопку Включить.
5). Пользовательская Формула ExcelDNA не отрисовывается правильно
вместо того, чтобы видеть значение ячейки, которое вы видите: #NAME?
выберите следующий раздел реестра:
HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\options\OPEN:
С правильным значением:
/R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll"
6). Excel зависает после показа messagebox
включите настройки приложения:
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 создает файл журнала в папке, которая содержит манифест приложения. Имя по умолчанию .декларация.бревно. Чтобы остановить ошибки ведения журнала, установите переменную в 0 (ноль).
Я бы предложил использовать инструмент Microsoft для диагностики проблем надстройки под названием AddinSpy.
забавно для меня, я попробовал перезагрузку. Починил для меня. Однако, почему-то починил его для меня, я изгой в Excel.exe выполняется скрыто. Добавление не запускалось из-за этого другого запущенного приложения excel (я переносил приложение MSAccess в VSTO), поэтому доступ имел скрытое приложение автоматизации.
короче говоря, если ваш аддин не запускается, быстрая проверка - это просто убедиться, что нет других запущенных приложений Excel. Это, конечно, применимо только тогда, когда вы пытаетесь чтобы получить новый установлен / запущен и работает.
(Я использовал эту ссылку) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/
здесь также есть еще одна возможность, почему вы не получаете обратной связи даже с переменными среды, упомянутыми выше. Я обнаружил, что если вы получаете эту ошибку после установки (а не предыдущий VSTO, который работал), вы также должны дважды проверить реестр и "Манифест" запись если у вас есть.
в то время как Джереми Томпсон указывает на Реестр во втором пункте, он не показывает Манифест запись может быть частью параметров реестра. Если ваша запись манифеста не указывает на правильный путь и файл, он будет отображаться в списке надстроек с записью "Не Загружается".
здесь мы видим плохую запись, которая просто указывает только на файл VSTO, нет пути.
Это приведет к тому, что ваше добавление будет выглядеть так, как будто оно загружено ошибками, но никакие ошибки не появляются и не появляются для вас и не расстраивают. Так это будет выглядеть это ниже, обратите внимание, что запись местоположения ниже также не показывает путь.
исправьте запись, введя правильный путь вместе с именем файла, и он исправит это.
отсутствие ошибок, которые я предполагаю, происходит из-за того, что вы изначально указывали ни на что, поэтому он перечисляет добавление, потому что оно находится в реестре, хотя загружать нечего.
В конце концов я уговорил слово сказать мне:
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] не удалось загрузить файл или сборку или один из его зависимостей