Добавление Excel, созданное в Visual Studio 2010, становится невозможным при запуске Excel

Я создал объявление excel с помощью Visual Studio 2010. Я использую развертывание Click Once для развертывания на общем диске и позволяю всем пользователям в моем офисе, имеющим доступ к этому общему диску, устанавливать его на свои машины. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что как только пользователь устанавливает надстройку, она работает нормально. На ленте есть дополнительная вкладка надстройки, которую я разработал для отображения. Однако, если они закроют Excel и вернутся через несколько мгновений, надстройка будет отключена. Теперь пользователь должен снова включить надстройку, просто вернувшись в параметры Excel -> Надстройки -> раскрывающийся список управления, выберите надстройки Com -> нажмите «Перейти», затем снова проверьте надстройку. Я хотел бы, чтобы com ad din всегда загружался, когда пользователь запускает Excel. Я проверил поведение при загрузке и установлено значение 3. Я озадачен тем, почему это продолжает происходить, любые предложения или идеи о том, как отладить это поведение, я был бы невероятно благодарен. Я также прочитал этот пост и пришли пустые на мое решение.


person Miguel    schedule 08.05.2015    source источник


Ответы (2)


Скорее всего, ваша надстройка запускает исключения во время выполнения. В этом случае приложения Office отключают надстройки. У вас была возможность ознакомиться со списком отключенных элементов?

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

Аппаратное отключение может произойти, когда надстройка вызывает неожиданное закрытие приложения. Это также может произойти на вашем компьютере для разработки, если вы остановите отладчик во время выполнения обработчика событий Startup в вашей надстройке.

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

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

Также я бы посоветовал проверить настройки центра управления безопасностью. Применяется ли безопасность макросов к надстройкам COM? Должны ли надстройки быть подписаны цифровой подписью?

person Eugene Astafiev    schedule 09.05.2015
comment
Евгений спасибо за ответ. Вот что интересно. Я поставил попытку поймать мой (ThisAddIn_Startup), и я не получаю никаких ошибок? Я просто не уверен, что может быть причиной этой проблемы. Также макросы безопасности включены в центр доверия. - person Miguel; 09.05.2015
comment
Исключение может быть запущено во время загрузки вашей надстройки, но метод запуска еще не вызывается. Или некоторые зависимости не могут быть найдены. Также взгляните на Как устранить неполадки надстройки VSTO. что не загружается? аналогичная ветка. - person Eugene Astafiev; 09.05.2015
comment
Спасибо, ваш ответ помог мне разобраться. В методе ThisAddIn_Startup был код, который не выдавал ошибку, но как только я его удалил, все заработало должным образом. - person Miguel; 11.05.2015
comment
@ Мигель, я очень рад, что ты обнаружил проблему, но тебе не кажется, что кто-то упомянул об этом перед этим постом;) - person Technovation; 12.05.2015

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

person Technovation    schedule 09.05.2015