Tipps & Tricks zur Erstellung eines Office 2010 Add-In via VSTO

18.07.2016

Nachfolgend liste ich einige Tipps & Tricks, die für die Erstellung eines Office 2010 Add-In via VSTO nützlich sind.
Diese habe ich mir während der Implementierung eines Outlook Add-In für calvaDrive erarbeitet.

Was ist VSTO?

„Visual Studio Tools for Office“ sind Microsoft Office-Entwicklertools in Visual Studio, mit denen .NET Framework-Anwendungen mit C# oder Visual Basic erstellt werden können. Diese bieten eine Vielzahl an Projektvorlagen, um Office passend zu verschiedenen geschäftlichen Anforderungen zu erweitern. Es können Add-Ins für Word, Excel, PowerPoint sowie Outlook entwickelt werden.
VSTO wurde primär für den Zweck entworfen, Anwender von VBA zu .NET zu bringen.

Tipps & Tricks

Anzeigen von Fehler der Benutzeroberfläche

Da die Fehlersuche bei der Erstellung von Benutzeroberflächen von Add-Ins oft eine Herausforderung ist, gibt es die Möglichkeit Fehlermeldungen anzuzeigen, die sich auf die Benutzeroberfläche beziehen. Wie das funktioniert, steht hier: https://msdn.microsoft.com/de-de/library/bb608619.aspx?f=255&MSPPError=-2147217396

Add-In wird auf Grund von unbehandelten Ausnahmen deaktiviert

Während dem Entwickeln ist das Auftreten von unbehandelten Exceptions, wie etwa NulLReference, keine Seltenheit.
Tritt eine unbehandelte Ausnahme auf oder führt ein Add-In zu einer unerwarteten Beendigung, so wird das Add-In automatisch deaktiviert. Außerdem kommt es vor, dass beim Start eine Meldung mit der Frage angezeigt wird, ob das Add-In auf Grund eines schwerwiegenden Fehlers deaktiviert werden soll.
Ist das Add-In deaktiviert, so kann es wie folgt wieder aktiviert werden: https://docs.microsoft.com/de-de/visualstudio/vsto/how-to-re-enable-a-vsto-add-in-that-has-been-disabled?view=vs-2017

Add-In verursacht langsamer Start von Outlook 2013

Ein Office 2010 Add-In ist mit Office 2013 kompatibel. Jedoch kann es vorkommen, dass ein Add-In einen langsamen Start von Outlook 2013 verursacht.
Oftmals dauert das Laden des Add-In mehr als eine Sekunde. Denn je nach Umgebung und Leistung des Systems kann dies bei jedem .NET Add-In auftreten, auch im Zusammenhang mit dem Verhalten von Outlook, wie die Zertifikate geprüft werden. Der Grund für das Auftreten ist, dass beim Start des Add-In das .NET-Framework in Outlook geladen wird und dies als Zeit für das Add-In angerechnet wird. Dies kann bei langsamen Systemen schnell über einer Sekunde dauern. Eine ausführlichere Erklärung ist hier beschrieben: https://msdn.microsoft.com/en-us/library/office/jj228679.aspx#ol15WhatsNew_AddinDisabling
Um dies zu vermeiden, sollte die Funktionalität beim Initialisieren des Add-In so gering wie nur möglich gehalten werden. In einem zukünftigen Blog-Beitrag werde ich noch genauer auf diese Thematik eingehen.

Zertifizieren

Um ein VSTO Add-In richtig zu zertifizieren, muss an zwei Stellen signiert werden. Ein Zertifikat kann bei verschiedenen Zertifizierungsstellen (auch „Trust Center“ genannt) erworben werden.
Zum einen muss der „Microsoft Office-Anpassungs-Installer“ als .vsto-Datei, der das Add-In in Outlook integriert, zertifiziert werden. In den Projekteigenschaften unter „Signing“ kann das „ClickOnce manifest“ signiert werden.
Zum anderen muss der Installer als .exe-Datei (z.B. über NSIS generiert) signiert werden. Hierzu dient das SignTool.

Hilfreiche Links

Für das erstmalige Erstellen von VSTO-Add-Ins für Outlook befindet sich ein Tutorial zur Einführung auf der MSDN-Website von Microsoft: https://msdn.microsoft.com/de-de/library/cc668191.aspx

In folgendem Tutorial ist anhand von Beispielen dokumentiert, wie die Explorer- und Inspektor-Menübänder, die Menüs, die Kontextmenüs sowie die Backstage-Ansicht der Benutzeroberfläche angepasst werden können: https://msdn.microsoft.com/de-de/library/office/ee692172(v=office.14).aspx

Werden darüber hinaus noch weitere Informationen zur Entwicklung der Backstage-Ansicht benötigt, gibt es weitere nützliche Tutorials zur Einführung:

Soll das Menüband nicht über XML, sondern über den Visual Designer erstellt werden, kann das Vorgehen hier nachgelesen werden: https://msdn.microsoft.com/de-de/library/bb386089.aspx

Eine Beschreibung von Elementen für das Custom-UI-XML sowie deren Attribute gibt es hier: https://msdn.microsoft.com/en-us/library/dd926139%28v=office.12%29.aspx

Beispiel-Projekt

Ein kleines Beispiel, wie ein Add-In für Outlook erstellt werden kann, ist hier zu finden: https://github.com/doubleSlashde/OutlookAddIn-Example
Das Beispiel zeigt, wie ein neuer Button in das Ribbon-Menü für die Erstellung einer neuen E-Mail eingefügt werden kann. Außerdem ist ein neuer Button für die Backstage-Ansicht implementiert.

Quellen

[1] https://msdn.microsoft.com/de-de/library/jj620922.aspx
[2] https://msdn.microsoft.com/de-de/library/ms268871.aspx
[3] https://social.msdn.microsoft.com/Forums/de-DE/d6212bb5-4115-4d4e-a63b-949b8d4d8c89/was-genau-ist-vsto-per-definition-?forum=vstode
[4] https://msdn.microsoft.com/en-us/library/office/jj228679.aspx#ol15WhatsNew_AddinDisabling
[5] https://www.add-in-express.com/creating-addins-blog/2012/10/09/problem-detected-addin-disabled-outlook2013/

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*