Laden...

Office AddIn und Uninstall

Erstellt von DaSchroeter vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.431 Views
DaSchroeter Themenstarter:in
215 Beiträge seit 2004
vor 16 Jahren
Office AddIn und Uninstall

Moinsen,

hab ein kleines Problem mit meinem Office AddIn.
Vornewech: Der Installer läuft, das AddIn läuft.
Und zwar mit Word/Excel 03 und Word/Excel 07

Nun funktioniert aber der Uninstaller nicht richtig.
Ich verwende NSIS zur Erstellung der Registry Einträge
und zur Registrierung der Komponenten.

Die Office.Core Referenzen hab ich mittels Reflection umgangen.

Es werden im Prinzip nur die Einträge im Addins subkey in der Registry geschrieben.

Mit 2007 läuft auch alles prima, aber in Word/Excel 2003 bleibt der
von meinem AddIn erstellte Button (ach ja: das macht es) hängen.

Weiss jemand wo da noch überall was eingetragen wird/werden muss?

thnx
DaSchroeter

664 Beiträge seit 2005
vor 16 Jahren

Original von DaSchroeter
Mit 2007 läuft auch alles prima, aber in Word/Excel 2003 bleibt der
von meinem AddIn erstellte Button (ach ja: das macht es) hängen.

Bedeutet soviel wie, du legst einen Button an und der bleibt nach der Deinstallation?
Wenn du den Button via CommanBar/CommandBarButton anlegst, kannst du Office mitteilen dass die CommandBar nur temporär hinzugefügt werden soll und nur in der aktuellen Instanz vorhanden ist. Vielleicht hilft dir das ja schon weiter.

DaSchroeter Themenstarter:in
215 Beiträge seit 2004
vor 16 Jahren

Original von langalaxy
Bedeutet soviel wie, du legst einen Button an und der bleibt nach der Deinstallation?

Ja, aber um es klarzustellen: Der Button wird natürlich vom AddIn selbst angelegt.
Und theoretisch auch wieder entfernt. Der Uninstaller entfernt 'nur' die Registrierungseinträge.

Original von langalaxy
Wenn du den Button via CommanBar/CommandBarButton anlegst, kannst du Office mitteilen dass die CommandBar nur temporär hinzugefügt werden soll und nur in der aktuellen Instanz vorhanden ist. Vielleicht hilft dir das ja schon weiter.

Das wär genau das was ich brauche...kannst Du mir noch nen Tip geben wie ich das anstellen muss?
Ach ja: Ich verwende keine Referenzen auf die Office... DLLs. Das wird alles per Reflection erledigt: Das Abrufen der CommanBar/CommandBarButton Objekte, das Erstellen/Entfernen des Buttons,...

thnx
DaSchroeter

664 Beiträge seit 2005
vor 16 Jahren

Hi

http://msdn2.microsoft.com/de-de/library/microsoft.office.core._commandbars.add(VS.80).aspx
Mit Parameter Temporary = true sollte die Toolbar beim Beenden von Word / Excel wieder verschwinden. Beim nächsten Start wird diese von deinem Addin wieder ereugt, usw...

--edit

URL repariert

DaSchroeter Themenstarter:in
215 Beiträge seit 2004
vor 16 Jahren

Moin!

Ich verwende eher das hier um den Button hinzuzufügen.
http://msdn2.microsoft.com/de-de/library/microsoft.office.core.commandbarcontrols.add(VS.80).aspx

Das würde bei mir einem solchen Aufruf entsprechen:
CommandBarButton btn = Commandbars["Standard"].Controls.Add(...,true);

true bezieht sich hier auf Temporary. Ich setzte momentan sogar noch
btn.Temporary = true;
aber das bringt alles nichts.

Genauer: Excel/Word 2007 läuft, Excel 2003 läuft, Word 2003 lässt den Button drin 🙁

Noch ne Idee, oder schonmal was davon gehört?

thnx
DaSchroeter

B
214 Beiträge seit 2005
vor 16 Jahren

Jopp, das leidige Thema um den existierenden Word 2003 Button 😁

Das Problem liegt daran, dass mit jeder gestarteten Word Instanz auch das Wordtemplate Normal.dot geladen wird. In dieser Vorlage werden sowohl die Menü-, wie auch Symbolleisten gespeichert.
Ich hab das Phänomen auch bei mir, dass der Button trotz der Temporäreigenschaft weiterhin vorhanden bleibt.
Als Lösung könnte man für das AddIn ein eigenes Template erstellen, eine Kopie der Normal.dot umbenennen und beim Starten des AddIns diese Vorlage laden. So bleibt der Button auch nicht beim normalen Start von Word in der Leiste drin.

Was anderes ist mir bis dato nicht eingefallen.

Grüße Bionic

.:: SilvrGame - Browsergame Development with Silverlight
.:: Bionic's blOg

DaSchroeter Themenstarter:in
215 Beiträge seit 2004
vor 16 Jahren

Mistsch****!
Genau sowas hab ich mir gedacht.

Werd dann wohl mal weitersuchen, ob es da einen praktikablen Workaround gibt 🙁

thnx
DaSchroeter

N
67 Beiträge seit 2006
vor 16 Jahren

Hi, @DaSchroeder
Hast du Installation einzeln zum projekt hinzugefügt oder die normale die Dabei ist benutzt ? (die es erstellt)

Falls du diese installation benutzt hast, was hastn dannach noch alles gemacht ich bekomm es einfach nirgends zum laufen (außer wenn ich es bei mir debug da gehts ...) aber wenn ich es auch bei mir mit der INstall mache kommt beim Ladeverhalten immer ein fehler...

MfG

Niwrex

B
214 Beiträge seit 2005
vor 16 Jahren

Was für ein Fehler?

.:: SilvrGame - Browsergame Development with Silverlight
.:: Bionic's blOg

N
67 Beiträge seit 2006
vor 16 Jahren

Dies hier steht bei Ladeverhalten ... nach der install

  • Nicht geladen. Während des Ladens des COM-Add-Ins ist ein Laufzeitfehler aufgetreten.
B
214 Beiträge seit 2005
vor 16 Jahren

.:: SilvrGame - Browsergame Development with Silverlight
.:: Bionic's blOg

DaSchroeter Themenstarter:in
215 Beiträge seit 2004
vor 16 Jahren

Moinsen!

Also ich hab im Prinzip nur die benötigten Registry Einträge erstellt.
Das AddIn selbst ist am Einfachsten mit dem VS 2005er Wizard zu erstellen.
'Shared AddIn' brauchst Du.

Dann hab ich das Installer-Projekt weggeworfen.
(Da könntest Du vorher nochmal reinschauen, welche Registry Einträge Du machen musst.)

Der Wizard erstellt Dir eine Klasse Connect (Connect.cs), die schon alle benötigten
Interfaces implementiert.
Dann hab ich aus den Referenzen einfach alles rausgeworfen, was mit Office zu tun hat.
Auch die Core!

Dann musst Du dich durch die MSDN wühlen und nachsehen, welche Eigenschaften und Methoden Du wie per Reflection zuweisen/aufrufen musst 🙂

Das war's eigentlich schon 🙂
Ach ja: Hilfreich ist es, einige Ausgaben per Debug.WriteLine(...) zu erzeugen.
Dann siehst Du genau, ob Dein AddIn fehlerhaften Code enhtält oder ob es magels z.B. Registrierung gar nicht erst geladen wird.

Und Debuggen geht eigentlich auch ganz einfach:
In den Projektoptionen einfach Word/Excel als 'zu startende Anwendung' angeben.

greetz
DaSchroeter

N
67 Beiträge seit 2006
vor 16 Jahren

Ich hab die Lösung all meiner Probleme gefunden ...

http://www.supinfo-projects.com/en/2006/add_in_outlook_2007_en/6/

funzt super und is sogar verständlich die anleitung...

MfG Steffen

P.S. Danke an Bionic habs durch nen Tip von ihm gefunden ...