Как устранить неполадки VSTO addin, который не загружается?
моя надстройка VSTO Outlook внезапно перестала работать на одной машине клиента (она не загружается, нет сообщения об ошибке), и я застрял с устранением неполадок. Машина Windows 7 x86, Outlook 2007. Надстройка написана с Visual Studio 2008 и использует VSTO 2005 с 2003 PIAs (потому что нам также нужно поддерживать Outlook 2003). Он отлично работает на других машинах.
вот что я пытался получить полезный вывод по устранению неполадок:
-
добавить элемент
VSTO_SUPPRESSDISPLAYALERTS
переменные среды (значение0
). - запустите Outlook с правами администратора.
- посмотрите в журнал событий.
ничего. Надстройка просто не будет загружаться, не давая любой указанием причины. Я также проверил "Обычные подозреваемые" (политика CAS, установленные PIAs, LoadBehavior в реестре, переустановка VSTO и надстройки).
некоторые другие наблюдения:
-
LoadBehavior
в реестре остается на3
. - надстройка отображается как "отключено" в Outlook. Проверка его флажка в "COM add-ins" просто ничего не делает (нет ошибки, флажок снова снимается при вводе формы во второй раз).
- оно работает совершенно отлично на других машинах клиента, и оно работало совершенно отлично на этой машине. (Нет, клиент не может сказать мне, что изменилось на его машине.)
- у меня есть
Trace.WriteLine
сообщение в самом верху моего кода (первая строка вThisAddIn_Startup
обработчик), который не достигнут (я проверил с DebugView). Таким образом, причиной не загрузки является не исключение в моей надстройке, а скорее сбой VSTO для загрузки надстройки или Outlook для загрузки VSTO.
вместо более случайной отладки ("попробуйте это...", "попробовать это..."), Мне бы очень хотелось заставьте Outlook и / или VSTO сказать мне, что случилось, т. е. дать мне полезные ошибки сообщение вместо просто ничего не делать при попытке включить надстройку. Есть идеи?
7 ответов:
вы пробовали включить надстройку снова? Он не будет работать после его в отключенной очереди. После того, как вы снова включите его с экрана отключенной надстройки, вы можете установить флажок на экране COM-AddIn, чтобы он загрузился, который затем должен предложить вам более подробную информацию, так как вы установили
VSTO_SUPPRESSDISPLAYALERTS
переменная о том, что могло произойти в первую очередь.
вот немного более подробно о решении RobertG5 (слишком долго для комментария):
проблема была в том, что надстройка была hard disabled в 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 надстройки > Нажмите кнопку Перейти. В диалоговом окне надстройки COM убедитесь, что надстройка тикавший.
4). Надстройка была отключена.
в качестве альтернативы надстройка может быть скрыта, потому что она была отключена. Вы можете включить надстройку, перейдя в Excel > Файл > Параметры > надстройки > выберите раскрывающийся список управление и отключите его и нажмите кнопку Перейти. Выберите надстройку, которая была отключена и нажмите кнопку Включить.
5). В ExcelDNA Формуле, заданной пользователем не оказывает правильно
вместо того, чтобы видеть значение ячейки вы видите: #имя?
выберите следующий раздел реестра:
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 logging и alerts, но по сути вы меняете два значения переменных окружения в зависимости от того, что вам нужно сделать:
отображение подсказок VSTO Alert
чтобы отобразить каждую ошибку в окне сообщения, установите Переменная 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] не удалось загрузить файл или сборку или один из его зависимостей