Das Deployen eines Word Add-In für Office 2003 hat echt Nerven gekostet. Das Add-In wollte sich einfach nicht innerhalb von Word 2003 anzeigen lassen.

Zudem war es auch noch recht mühsam, da das Add-In sowohl für Word 2003 als auch für Word 2007 laufen soll. Ich kam also nicht herum, das 2003er Add-In in einer virtuellen Umgebung zu entwickeln und in einer weiteren VM mit einer sauberen XP und Office 2003 Prof. Installation das Add-In zu testen.

Okay das war aber nicht das eigentliche Problem, sondern dass ich es anfänglich nicht gebacken bekommen habe, das Add-In zum laufen zu bekommen.

Wo waren die Probleme?

Um Herauszubekommen, was denn das Problem sein könnte habe ich das Tool von Microsoft namens PSS VSTO 2005 Client Troubleshooter gefunden, diese App zeigt DLLs an die nicht installiert sind und wohlmöglich für das Ausführen eines Add-Ins notwendig sind.

Ich hatte kein VSTO SE für Office 2003 installiert. Okay nachinstalliert.
Ich hatte keine PIA für Word 2003 installiert. Okay nachinstalliert.

Aber eigentlich will man die erforderlichen Komponenten ja nicht vom Endbenutzer nachinstallieren lassen, sondern die Setup, welche das Add-In installieren soll, sollte diese ja im Grunde schon beinhalten.

Nun, wenn man in einem Setup-Projekt auf die Eigenschaften geht, kann man ja so einige Komponenten anklicken, die für ein Setup erforderlich sein sollen.

Leider findet man hier vergebens die beiden erforderlichen Komponenten, was also tun? Nach einer Weile Recherche kommt man so auf die Stichpunkte Mergemodul und Bootstrapper Package. Letzteres sollte die Lösung sein.

Ich also genau nach der Anleitung versucht jenes Package zu bauen:

ComponentChecker Sample herunterladen und installieren (oder mit 7Zip entpacken) und in den Ordner

Microsoft Visual Studio 2005 Tools for Office SE Resources/VSTO2005SE Windows Installer Sample Version 3/projects/Checks

wechseln. In diesem Ordner befindet sich die Datei ComponentCheck.cpp. Nun mit der Visual Studio Eingabeaufforderung direkt zu diesen Verzeichnis wechseln und folgenden Befehl aufrufen:

cl.exe /Oxs /MT /GS ComponentCheck.cpp advapi32.lib

Erstellt wurde nun eine ComponentCheck.exe und eine ComponentCheck.obj. Die ComponentCheck.exe muss nun nach, für Office2003PIA

Microsoft Visual Studio 2005 Tools for Office SE Resources\VSTO2005SE Windows Installer Sample Version 3\packages\Office2003PIA

Und für  VSTOSERuntime

Microsoft Visual Studio 2005 Tools for Office SE Resources\VSTO2005SE Windows Installer Sample Version 3\packages\VSTOSERuntime

kopiert werden. Laut Anleitung, sollen diese Verzeichnisse anschliessend nach

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages

kopiert werden.

Wie im HowTo beschrieben, sollten die Komponenten nun in den erforderlichen Komponenten aufgeführt werden, wurden sie aber nicht *grml*.

Ich weiter recherchiert und nochmals die Anleitung durchgegangen, ob ich nicht irgendwas übersehen habe. Und es war auch so, ich hätte „doch“ richtig lesen sollen… „Verwendet man Visual Studio 2008, dann in das Verzeichnis“

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

kopieren. Wenn der Pfad bei dir nicht übereinstimmen sollte, der genauer Pfad steht auch im Schlüssel:

HKLM\Software\Microsoft\GenericBootstrapper\4.0

Gesagt, getan und sicherheitshalber Visual Studio nochmal neu gestartet und zu den Komponenten gewechselt. Voila die beiden erforderlichen Pakete wurden nun angezeigt.

So die Setup nun neu gebaut und auf der anderen Kiste ausgeführt. Und ich bin ganz erfreut, das er nun wirklich diese beiden erforderlichen Programme und das Add-In auf dem Zielrechner installiert.

 

Hach ist das ein Gefühl, mal wieder ein Problem gelöst zu haben, „Eine Odyssee“ hätte ich beinahe noch im Titel untergebracht… : )

VSTO & PIA 2003 in einem Office 2003 Setup
Markiert in: