Laden...

Add In Programmierung VS 2005

Erstellt von CrazyPlaya vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.981 Views
C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren
Add In Programmierung VS 2005

Ich hatte gerade eine Privatunterhaltung mit TOM_MUE über Office AddIns im VS 2005.
Auf TOM_MUEs bitte setze ich diesen Thread jetzt mal ins Forum

Soweit der Stand bis jetzt:

-----Ursprüngliche Nachricht-----
Nachricht von: CrazyPlaya
Gesendet: 12.04.2007 11:53
An: TOM_MUE
Betreff: Add In Programmierung VS 2005

Hi TOM_MUE,

Wie läuft es mit dem Buch?

Ich hätte da gerade mal ein Frage zur Registrierung der AddIns?

Wenn ich ein AddIn über den Assistenten entwickle, dann wird er beim Erstellen ja auch direkt registriert.
Wie kann ich diese AddIns den nachträglich wieder deregistrieren?

Gruß

Karsten

-----Ursprüngliche Nachricht-----
Nachricht von: TOM_MUE
Gesendet: 12.04.2007 12:34
An: CrazyPlaya
Betreff: Add In Programmierung VS 2005

Hallo Karsten,

danke der Nachfrage. Mit dem Buchprojekt läuft es sehr gut.

Nun, wenn Du mit VS2005 arbeitest, wird ein Add-in über seine *.AddIn in VS2005 registriert. Diese wird beim Arbeiten mit dem Add-in Assistenten in das Verzeichnis

..\Documents\Visual Studio 2005\Addin

gelegt. Wenn Du die Extension (*.AddIn) änederst, kann die AddIn-Datei beim nächsten Start von VS2005 nicht erkannt werden und Dein Add-in ist auch nicht mehr registriert.

Zum dynamischen Laden und Entladen eines Add-in in VS2005, benutzt man den Add-in Manager. Dieser befindet sich im Menu

Tools | Add-in Manager. Setz dort die entsprechenden Häkchen. So kannst Du zum Beispiel angeben, ob das Add-in mit dem Start von VS2005 mitgeladen werden soll oder nicht.

Ich hoffe das diese Infos weiterhelfen.

Wenn noch Fragen offen sind, einfach an TOM_MUE ÄT GMX Punkt NET
(Kann aber nicht immer pünktlich antworten. Bin zu viel in meinem JOB unterwegs.)
TOM_MUE

-----Ursprüngliche Nachricht-----
Nachricht von: CrazyPlaya
Gesendet: 12.04.2007 13:36
An: TOM_MUE
Betreff: Add In Programmierung VS 2005

Ich habe gerade festgestellt, dass ich vergaß zu erwähnen, das es sich um AddIns für Office handelt.
Diese werden nicht im AddIn Manager angezeigt und die .addin Datei existiert auch nicht.
Hast du über Office AddIns auch Kenntnisse?

-----Ursprüngliche Nachricht-----
Nachricht von: TOM_MUE

RE: Add In Programmierung VS 2005

OK,

hier handelt es sich dann wieder um eine gute alte COM- Registrierung in der Windowsregistrierung:

COM-Add-In-Registrierung
Zusätzlich zur herkömmlichen COM-Registrierung muss das COM-Add-In sich bei jeder Office-Anwendung registrieren, in der es ausgeführt wird. Damit das Add-In bei einer bestimmten Anwendung registriert werden kann, muss es einen Teilschlüssel mit seiner Programm-ID als Namen im folgenden Registrierungsschlüssel erstellen:
HKEY_CURRENT_USER\Software\Microsoft\Office\Office-Anwendung\Addins\Programm-ID
Für das Add-In können in diesem Registrierungsschlüssel Werte für einen eindeutigen Anzeigenamen und eine vollständige Beschreibung angegeben werden. Außerdem sollte das Add-In sein gewünschtes Ladeverhalten über den DWORD-Wert LoadBehavior festlegen. Dieser Wert bestimmt, wie das Add-In von der Host-Anwendung geladen wird. Er setzt sich aus einer Kombination der folgenden Werte zusammen:

• 0 = Disconnect - Nicht geladen.
• 1 = Connected - Geladen.
• 2 = Bootload - Bei Start der Anwendung laden.
• 8 = DemandLoad - Nur auf Anforderung des Benutzers laden.
• 16 = ConnectFirstTime - Nur einmal laden (beim nächsten Start).
Der in der Regel angegebene Wert lautet 0x03 (Connected | Bootload).

Add-Ins, die die IDTExtensibility2-Schnittstelle implementieren, sollten außerdem den DWORD-Wert CommandLineSafe festlegen, um anzugeben, ob die Add-Ins für Vorgänge als sicher zu betrachten sind, die keine Benutzeroberfläche unterstützen. Der Wert 0x00 steht für "False" (Falsch), und der Wert 0x01 steht für "True" (Wahr).

HTH

TOM_MUE

PS: damit Alle etwas davon haben, sollte ab jetzt die Frage im Forum geklärt werden.

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

Mir fehlt jetzt allerdings noch die Antwort, wie die AddIns sich wieder deregistrieren lassen.

200 Beiträge seit 2004
vor 17 Jahren

Hallo CrazyPlaya,

vielleicht in dem Du das Add-in an den entsprechenden Stellen in der Windowsregistrierung entweder manuell oder durch ein Setup wieder austrägst?!

😉

HTH

TOM_MUE

N
750 Beiträge seit 2004
vor 17 Jahren

Hallo CrazyPlaya und TOM_MUE,

ich habe eure Unterhaltung per PM (im ersten Post von CrazyPlaya) mal in die "richtige" Reihenfolge gebracht. Sie war ja zeitlich verdreht 😉

Ich denke so ist es einfacher zu lesen.

nils

?( wer suchet, der findet auch! :]

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

@nils Vielen Dank für die Mühe🙂 Ich hatte es auch schon vor gehabt bin aber zeitlich nicht so recht dazu gekommen.

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

@TOM_MUE:
Und es gibt nicht die Möglichkeit, dass man z.B. per RegSvr32 /U ...Pfad... austrägt?

Werden denn hier nur die Einträge im HKCR und in HKCU/Microsoft/Office/Word{Excel, Outlook ...} gesetzt oder sind das noch mehr?

200 Beiträge seit 2004
vor 17 Jahren

Hallo CrazyPlaya,

also mit RegSvr32 kannst Du eine Komponente auf Deinem System registrieren oder de-registrieren (ist "de-registrieren ein deutsches Wort?).

Wie oben schon geschrieben:

Zusätzlich zur herkömmlichen COM-Registrierung muss das COM-Add-In sich bei jeder Office-Anwendung registrieren, in der es ausgeführt wird. Damit das Add-In bei einer bestimmten Anwendung registriert werden kann, muss es einen Teilschlüssel mit seiner Programm-ID als Namen im folgenden Registrierungsschlüssel erstellen...

Du wirst also entweder ein Setup, ein Skript etc. dafür bemühen müssen um dein Add-in bei den Office-Hostanwendungen zu registrieren. Im Add-in Assistenten von Visual Studio xxxx gibst Du ja direkt an für welche Office-Anwendung dein Add-in gelten soll. Der Assistent übernimmt hier für Dich die Registrierung in der Windows Registrierung. Ein sehr einfacher Workaround ist das Erstellen eines Backup das Registry-Zweiges in dem die Einträge vom Assistenten vorgenommen werden. Wenn Du dann Deine Arbeiten beendet hast kann Du das Backup wieder in die Windows-Registrierung einspielen.

Wie weit bist Du denn selbst bei dem Thema gekommen?

HTH

TOM_MUE

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

Ich habe mich die Tage nochmal mit Rainbird darüber unterhalten und folgende Antwort bekommen:

Office Add-Ins, die mit .NET erstellt sind, werden normalerweise über einen Installer (Setup-Projekt) installiert (und damit registriert) und natürlich auch deinstalliert (und damit wird auch die Registrierung aufgehoben).

Wenn Du einfach nur die COM-Interop-Registriergung entfernen möchtest, musst Du das mit dem Befehlszeilentool REGASM.EXE tun (Das findest Du im .NET Framework Verzeichnis). RegSvr32 funktioniert nicht mit .NET Assemblies. Grund dafür ist, dass bei .NET Assemblies, die für COM-Interop registriert sind, immer mscoree.dll als registrierte COM-DLL in der Registry steht.

Konnte es allerdings noch nicht testen. Bin erst am Donnerstag wieder in der Firma!