Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Outlook-COM-Addin funktioniert nur auf einem Rechner nicht
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 511
Herkunft: Münster

Themenstarter:

Outlook-COM-Addin funktioniert nur auf einem Rechner nicht

beantworten | zitieren | melden

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
Fehler
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:
Fehler
.....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
private Nachricht | Beiträge des Benutzers
lukasS
myCSharp.de - Member

Avatar #avatar-3121.jpg


Dabei seit:
Beiträge: 67
Herkunft: Herne

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von lukasS am .
private Nachricht | Beiträge des Benutzers
ThomasE.
myCSharp.de - Member



Dabei seit:
Beiträge: 453

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 511
Herkunft: Münster

Themenstarter:

beantworten | zitieren | melden

Danke, werd' ich mal versuchen :)
private Nachricht | Beiträge des Benutzers