2013-08-28 2 views
0

У меня были проблемы с моим Excel Addin и установщиком Windows. Я попытался выполнить шаги, описанные в демонстрации (показано на Pluralsight) в тестовом проекте, и он отлично работает.Частичная функциональность Addin с установщиком Windows

Для моего пользовательского addin я использовал VS2010 и addin target Excel 2007. В моем решении больше проектов, чем только проект Addin и проект установки. После того, как я запустил файл msi, который я создал с проектом установки, тогда, если у меня есть окно сообщения в методе ThisAddIn_Startup класса ThisAddin.cs, тогда он показывает окно сообщения, но на нем не отображается вкладка Ribbon, которую я создал в том же проекте. Я попытался выяснить, появляются ли какие-либо ошибки, создавая переменные VSTO_SUPPRESSDISPLAYALERTS и VSTO_LOGALERTS, но я не вижу никаких файлов журналов. После того, как я создаю проекты и создаю файлы msi и setup.exe, я очищаю решение в Visual Studio и пытаюсь установить его из внешнего файла msi, так как сейчас я тестирую это на компьютере разработки. Возможно, я должен добавить, что если я запустил файл setup.exe, я даже не получил сообщение.

Мое добавление не отключено и отмечено в диалоговом окне COM-Addins. У меня установлен реестр для HKEY_CURRENT_USER.

Почему я вижу сообщение, но не моя вкладка на ленте?

ответ

1

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

0

Я считаю, что вы используете ленточный XML, а не дизайнер ленты. Если Ribbon XML добавьте следующий код в свой ThisAddin.cs

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() 
    { 
     return new Ribbon1(); 
    } 
+0

Нет, я использовал конструктор лент, чтобы создать свою собственную ленту. У меня есть обычные классы Ribbon.cs и Ribbon.Designer.cs как часть проекта Addin. Когда я пытаюсь использовать ваш код выше, я получаю сообщение о попытке неявно лить Ribbon в Microsoft.Office.Core.IRibbonExtensibility, что имеет смысл. – Igavshne

+0

В этом случае проверьте свойство Control Id для вкладки ленты, это должно быть (ControlIdType - Office и OfficeId - TabAddIns) или (ControlIdType - Custom и OfficeId - ) – Kiru

+0

Это «ControlIdType - Office и OfficeId - TabAddIns». Он отлично работает, когда я не очистил решение или сделаю установку из Visual Studio. К сожалению, лента (но не ящик сообщений) пропадает, когда она установлена ​​с установщика Windows или даже с установкой ClickOnce. Я отправил его другу, чтобы проверить его компьютер, и он испытывает то же самое (хотя он использует Office 2010). – Igavshne

Смежные вопросы