Laden...

Outlook-COM-Addin funktioniert nur auf einem Rechner nicht

Erstellt von hypersurf vor 7 Jahren Letzter Beitrag vor 7 Jahren 3.866 Views
H
hypersurf Themenstarter:in
523 Beiträge seit 2008
vor 7 Jahren
Outlook-COM-Addin funktioniert nur auf einem Rechner nicht

Hallo Leute,

ich habe ein COM-Addin für Outlook geschrieben, welches auf drei Rechnern laufen soll. Auf zwei Rechnern auf denen ich das Addin installiert habe funktioniert es unter Outlook 2007 und 2013 tadellos. Auf dem dritten Rechner (Outlook 2013) funktioniert das Addin nicht.

Wie immer bei der Registrierung von COM-DLLs habe ich regasm verwendet, welches die DLL korrekt registriert hat (hab's unter HKEY_CLASSES_ROOT geprüft).
Dann habe ich das Addin mit einer .reg-Datei im Schlüssel "HKEY_USERS\S-1-5-21-849391721-3056917416-2997542074-1011\Software\Microsoft\Office\Outlook\Addins" eingetragen. LoadBehavior steht auf 3.

Starte ich jetzt Outlook finde ich das Addin unter "inaktive Addins". In der COM-Add-Ins-Eingabemaske wird der Speicherort des Addins nicht angezeigt. Außerdem steht darunter

Fehlermeldung:
Nicht geladen. Während des Ladens des COM-Add-Ins ist ein Laufzeitfehler aufgetreten".

Wenn ich das Addin über die COM-Add-Ins-Eingabemaske entferne (Button "Entfernen") und mittels des Buttons "Hinzufügen" wieder hinzufügen will kommt folgende Meldung:

Fehlermeldung:
.....dll ist kein gültiges Office-Add-In.

Dieselbe DLL funktioniert aber auf den anderen PCs tadellos. Die DLL ist mit AnyCPU kompiliert.

Hier ist ein Ausschnitt aus der Hauptklasse des Addins:


namespace my_osticket_addin
{
    [ProgId("my_osticket_addin"), Guid("44334853-8a20-4f93-9d7b-5c2fb33859fc")]
    [COMAddin("my-software osTicket Outlook-Addin", "This Addin provides osTicket-Support for MS Outlook.", 3), Tweak(true)]
    public class ThisAddin : COMAddin, IDisposable
    {
        private AddinToolbarHandler _Toolbarhandler;

        public ThisAddin()
        {
            this.OnStartupComplete += new OnStartupCompleteEventHandler(ThisAddin_OnStartupComplete);
            this.OnDisconnection += new OnDisconnectionEventHandler(ThisAddin_OnDisconnection);
            this._Toolbarhandler = new AddinToolbarHandler();
            this._Toolbarhandler.ButtonCreateTicketPressed += Toolbarhandler_ButtonCreateTicketPressed;
            this._Toolbarhandler.ButtonSettingsPressed += Toolbarhandler_ButtonSettingsPressed;
        }


        private void ThisAddin_OnStartupComplete(ref Array custom)
        {
            this._Toolbarhandler.RemoveToolbar(this.Application);
            this._Toolbarhandler.AddToolBar(this.Application);
        }

        private void ThisAddin_OnDisconnection(ext_DisconnectMode RemoveMode, ref Array custom)
        {
            this._Toolbarhandler.RemoveToolbar(this.Application);
        }

        protected override void OnError(ErrorMethodKind methodKind, System.Exception exception)
        {
            MessageBox.Show(exception.Message,
                    System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

Hat jemand von Euch schonmal ein ähnliches Verhalten erlebt? Bei Google hab' ich leider keine brauchbaren Hilfen gefunden.

Gruß hypersurf

65 Beiträge seit 2009
vor 7 Jahren

Hi,

ich hatte schon öfter Probleme mit 32- und 64-Bit-Versionen. Ich muss einmal als x86 und einmal als 64-Bit kompilieren und dann die DLLs/TLBs dementsprechend registrieren.

32 Bit - Office
C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm "PFAD\Datei-32.dll“ /tlb:"PFAD/Datei-32.tlb“ /codebase
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe "PFAD\Datei-32.tlb"

64 Bit - Office
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm ...
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe ...

Wie das jetzt mit AnyCPU aussieht, weiß ich leider nicht.

Ich weiß nicht ob es dir hilft, das sind halt meine Erfahrungen.

Gruß

Lukas

T
461 Beiträge seit 2013
vor 7 Jahren

Hallo,

in meinem Fall hatte ich die Anwendung für 32Bit unter x86 erstellen müssen damit es funktioniert.

Für x64 hat es mit AnyCPU funktioniert.

Grüße

Ich habe den Titel mal angepasst, so dass Suchende auch etwas damit anfangen können. EDIT: Ich sollte beim Wort "Shift" im Titel das "f" nicht vergessen... 😄

H
hypersurf Themenstarter:in
523 Beiträge seit 2008
vor 7 Jahren

Danke, werd' ich mal versuchen 😃