Office Add-in Deployment leicht gemacht (Click Once mit Visual Studio Tools for Office)

Die dritte Version von Visual Studio Tools for Office (VSTO) ist diese Woche als Teil von Visual Studio 2008 erschienen. Auffällig ist, dass es keinen separaten Download mehr benötigt um mit Visual Studio Tools for Office zu arbeiten. Das war bisher notwendig, sofern Sie nicht über eine Edition von Visual Studio aus dem Team System verfügten. Die VSTO Technologie ist nun bereits ab der Visual Studio 2008 Professional Version integriert (wie auch Unit Testing):

installing VS2008

Erst kürzlich haben wir mehrere zahlreiche Whitepapers zum Deployment von VSTO Lösungen veröffentlicht: https://msdn2.microsoft.com/en-us/library/bb332051.aspx. In der Tat war's in der Praxis oft so, dass das Entwickeln einer Lösung nur wenige Tage benötigte, das Erstellen eines sauberen Deployments dauerte jedoch locker 2 Wochen. Und automatische Updates waren zwar möglich, jedoch waren auch diese komplex zu managen.

Produktivitäts-Durchbrüche

Die neue Version bringt nun nicht nur markante Produktivitäts-Durchbrüche für den Entwickler dank Outlook Form Regions und dem Ribbon Designer, sondern vereinfacht das Deployment solcher Smart Clients um ein Vielfaches: Die Antwort heisst Click Once Deployment. Dieses wird für sämtliche VSTO Projekt Templates angeboten und setzt das .NET FW 3.5 sowie das Vorhandensein der VSTO 3.0 Runtime auf dem Client voraus. Falls diese "Prerequisites" noch nicht vorhanden sind, können auch diese mittels Mausklick als Bootstrapper für die Click Once Applikation konfiguriert werden (wie bekannt aus Windows Forms).

Tipps für den Entwickler zu Click Once

Angenommen Sie entwicklen ein Outlook 2007 Add-in und haben es mittels dem Publish-Button (Project-Properties) deployed. Im Deployment Verzeichnis (Fileshare oder IIS) befindet sich u.a. eine .vsto Datei. Diese wird als Deployment Manifest bezeichnet, da sie u.a. beschreibt, was die aktuelle Version auf dem Server ist. Wenn Sie diese Datei ausführen, erscheint der folgende Dialog (sofern .NET FW 3.5 installiert ist):

image

Da ich nur ein Test-Developer Zertifikat verwende, erhalte ich eine Warnung (Unknown Publisher). Sobald ich Install klicke wird das Add-in in den lokalen Click Once Cache kopiert und die notwendigen Registry Einträge werden erstellt - und dies ohne Admin-Rechte zu benötigen!. Wenn ich das nächste Mal Outlook starte, wird das Add-in geladen - wunderbar!

Naja - fast. Nun entwickeln Sie eine zweite Version und möchten das Verhalten prüfen, wenn Sie diese Lösung erneut publizieren. Sie starten Outlook erneut und das Add-in versucht sich automatisch zu aktualisieren, da es auf dem Server ja eine neue Version gibt.

Folgende Fehler tritt auf:

image

Das Problem

Sofern auf derselben Maschine entwickelt und deployed wird, entsteht ein Registrationskonflikt. Das Add-in wird nämlich zweimal in der Registry registriert. Einmal durch Visual Studio beim Entwickeln und das das zweite Mal beim Click Once Deployment. Dadurch entsteht eine Inkonsistenz und Click Once installiert aus Sicherheitsgründen die neue Version nicht.

Abhilfe

Es gibt 3 Varianten:

  1. Deployen Sie auf einer Zweitmaschine (noch keine Registration ist vorhanden)

  2. Deployen Sie mit einem zweiten Benutzer (Click Once Applikationen sind User-spezifisch (vs Maschinen-spezifisch)

  3. Meine Variante: Publizieren Sie von Anfang an zwei Versionen (z.B. 1.0.0.0 und 1.0.0.1). Nachdem Sie die erste Version publiziert haben, nennen Sie das Deployment manifest um (in v1), damit es nicht durch das zweite Deployment überschrieben wird. Bevor Sie nun das Add-in installieren, wählen Sie die Funktion Build/Clean Solution innerhalb von Visual Studio aus. Dadurch wird die Registraton des Add-ins gelöscht.

    Nennen Sie das zweite Deployment manifest File um (in v2). Das Publish-Verzeichnis sieht nun etwa so aus:
    image

    Nennen Sie die Datei mit v1 wieder um (in diesem Fall "ClickOnceWordAddIn.vsto"). Installieren Sie dieses Add-in. Nennen Sie nun das v2 Deployment manifest um (in diesem Fall "ClickOnceWordAddIn.vsto"). Starten Sie Word erneut - und siehe da - diese neue Version ist aktuell!

Desinstallation des Add-ins

Wie üblich bei Click Once Applikationen können Sie Click Once Programme über Programs and Features desinstallieren:

image 

Ich hoffe, dass Ihnen dieser Tipp bei der Arbeit mit Visual Studio Tools for Office und Click Once hilft.

Weitere Infos zu Visual Studio Tools for Office: https://msdn2.microsoft.com/en-us/library/d2tx7z6d(VS.90).aspx

Am 15. Januar 2007 werden wir ein Hands-on Lab (und TechTalk) zu Visual Studio Tools for Office durchführen: https://www.microsoft.com/switzerland/msdn/de/events/default.mspx. U.a. werden Sie dabei das neue VSTO Click Once Deployment kennenlernen.