Wie behebe ich ein VSTO-Add-In, das nicht geladen wird?

76

Mein VSTO Outlook-Add-In funktioniert plötzlich nicht mehr auf einem Kundencomputer (es wird nicht geladen, keine Fehlermeldung), und ich habe keine Fehlerbehebung mehr. Der Computer ist Windows 7 x86, Outlook 2007. Das Add-In wurde mit Visual Studio 2008 geschrieben und verwendet VSTO 2005 mit den 2003-PIAs (da wir auch Outlook 2003 unterstützen müssen). Es funktioniert einwandfrei auf anderen Maschinen.

Folgendes habe ich versucht, um eine nützliche Ausgabe zur Fehlerbehebung zu erhalten:

Nichts. Das Add-In wird nur nicht geladen werden ohne Angabe von jeder Hinweis auf den Grund. Ich habe auch die "üblichen Verdächtigen" überprüft (CAS-Richtlinie, installierte PIAs, LoadBehavior in der Registrierung, Neuinstallation von VSTO und das Add-In).

Einige andere Beobachtungen:

  • LoadBehaviorin der Registrierung bleibt bei 3.
  • Das Add-In wird in Outlook als "deaktiviert" angezeigt. Das Aktivieren des Kontrollkästchens in "COM-Add-Ins" führt einfach zu nichts (kein Fehler, das Kontrollkästchen wird beim zweiten Aufrufen des Formulars erneut deaktiviert).
  • Auf anderen Kundenmaschinen funktioniert es einwandfrei, und auf dieser Maschine funktioniert es einwandfrei. (Nein, der Kunde kann mir nicht sagen, was sich an seiner Maschine geändert hat.)
  • Ich habe Trace.WriteLineganz oben in meinem Code eine Nachricht (erste Zeile im ThisAddIn_StartupHandler), die nicht erreicht wird (ich habe mit DebugView nachgefragt ). Daher ist der Grund für das Nichtladen keine Ausnahme in meinem Add-In, sondern ein Fehler von VSTO beim Laden des Add-Ins oder von Outlook beim Laden von VSTO.

Anstatt mehr zufälliges Debuggen ("try this ...", "try that ...") möchte ich Outlook und / oder VSTO wirklich zwingen, mir zu sagen, was falsch ist , dh mir stattdessen eine nützliche Fehlermeldung zu geben beim Versuch, das Add-In zu aktivieren, einfach nichts zu tun . Irgendwelche Ideen?

Heinzi
quelle
9
Diese Frage bezieht sich auf VSTO für ein Outlook-Add-In, das Problem ist jedoch ein allgemeines Office-Problem. Die Frage und ihre Antworten haben mir bei einem Excel 2010-Add-In geholfen.
Dirk Brockhaus
2
+1 für die Einführung in die Umgebungsvariable VSTO_SUPPRESSDISPLAYALERTS
Andy McCluggage
1
@Heinzi - danke, dass du diese Frage gestellt hast, ich habe die meisten anderen Lösungen hinzugefügt, die die Leute stolpern lassen. Die deaktivierte ist einfach zu beheben, es sei denn, es passiert auf Citrix ...
Jeremy Thompson
Bitte sehen Sie dies auch für Outlook 2007, indem Sie LoadBehavior auf 0 ändern
Alexandru
Haben Sie überprüft, ob die Manifestdatei am richtigen Speicherort vorhanden ist? Überprüfen Sie auch, ob der Registrierungseintrag dieses Add-Ins in beiden Zweigen, HKLM & HKCU, vorhanden ist oder nicht.
Ajit Medhekar

Antworten:

53

Haben Sie versucht, das Add-In erneut zu aktivieren? Es wird nicht ausgeführt, nachdem es sich in der deaktivierten Warteschlange befindet. Nachdem Sie es über den deaktivierten Add-In-Bildschirm wieder aktiviert haben, können Sie das Kontrollkästchen im COM-Add-In-Bildschirm aktivieren, damit es geladen wird. Dies sollte Sie dann zu weiteren Details auffordern, da Sie die VSTO_SUPPRESSDISPLAYALERTSVariable darüber festgelegt haben, was möglicherweise im ersten passiert ist Ort.

Gardner
quelle
5
Das ist genau das Problem: Ich aktiviere das Kontrollkästchen im COM-AddIns-Bildschirm, klicke auf OK, rufe den COM-AddIns-Bildschirm erneut auf und das Kontrollkästchen wird erneut deaktiviert. Es wird keinerlei Fehlermeldung angezeigt.
Heinzi
3
Ich meine, die deaktivierte Add-In-Warteschlange zu überprüfen (nicht Ihr deaktiviertes Add-In). In der Dropdown-Liste Add-In-Typ ist dies das letzte Element in der Liste. Es ist wie ein Fegefeuer für potenziell schlechte Add-Ins.
Gardner
2
+1, du hast natürlich recht. Entschuldigen Sie, dass Sie Ihre Antwort beim ersten Mal falsch gelesen haben (die Abwertung stammt übrigens nicht von mir). Ich werde deine als Antwort markieren, aber ich werde meine Antwort auch hier behalten, da sie etwas ausführlicher ist.
Heinzi
1
Wenn das Plugin abstürzt, wird es zu den deaktivierten Plugins hinzugefügt. Ich bin mir nicht sicher, ob das Plugin zu oft abgestürzt ist oder Outlook festgestellt hat, dass die Art des Absturzes schwerwiegend genug ist. Sie müssen es jedoch zuerst von dort entfernen. Der Versuch, es zu aktivieren, funktioniert sonst nicht.
Der Muffin-Mann
1
Wenn Sie immer noch Probleme haben, versuchen Sie, alles in die App zu packen.
Der Muffin-Mann
55

Hier ein bisschen mehr Details zur Lösung von RobertG5 (zu lang für einen Kommentar):

Das Problem war, dass das Add-In von Outlook schwer deaktiviert wurde. Wie ich gelernt habe, ist das etwas anderes als das "übliche" Szenario ohne Laden. Der Schlüssel zur Realisierung war, dass das Add-In nicht unter Inactive Application Add-Ins , sondern unter Disabled Application Add-Ins angezeigt wurde . Das macht einen Unterschied: Im letzteren Fall hilft es nichts, nur zum COM-AddIn-Bildschirm zu gehen und das Kontrollkästchen zu aktivieren. (Ich denke, ein nettes Meldungsfeld "Sie können dieses Add-In nicht laden, weil es schwer deaktiviert wurde" wäre zu viel, um zu fragen ... seufz .)

Wie aktiviere ich ein hart deaktiviertes Add-In wieder?

  1. Ändern Sie im Feld Verwalten die COM-Add-Ins in Deaktivierte Add-Ins , und klicken Sie dann auf Los.
  2. Wählen Sie das Add-In aus und klicken Sie auf Aktivieren . Klicken Sie auf Schließen .

OK, jetzt kann das Add-In wieder geladen werden:

  1. Ändern Sie im Feld Verwalten die Option Deaktivierte Add-Ins in COM-Add-Ins , und klicken Sie dann auf Los.
  2. Aktivieren Sie das Kontrollkästchen neben dem deaktivierten Add-In. Klicken Sie auf OK .

Referenz: http://msdn.microsoft.com/en-us/library/ms268871.aspx

Heinzi
quelle
3
Großartig. Vielen Dank für den Hinweis. Ich füge hinzu, dass für Microsoft Office 2003-Anwendungen die Liste der deaktivierten Add-Ins im Menü "Hilfe-Info" platziert ist.
Boogier
47

Ich weiß, dass dies alt ist, aber aus verschiedenen Gründen habe ich kürzlich Fehlerbehebung bei Office-Add-Ins durchgeführt, die nicht geladen werden.

Es hat viel Zeit gekaut, also dachte ich, ich würde es teilen. Wenn Ihr Add-In nicht geladen wird oder nicht sichtbar ist oder so, versuchen Sie bitte diese Lösungen.

1. Das Add-In wird nicht geladen.

Nicht geladen. Beim Laden des COM-Add-Ins ist ein Laufzeitfehler aufgetreten.

Geben Sie hier die Bildbeschreibung ein

Das Problem ist auf das Fehlen von .NET Framework 3.5 oder 4.0 zurückzuführen.

Hinweis: Wenn die Office-Version 64-Bit (x64) ist, benötige ich nur .NET 4.0. Wenn die Office-Version jedoch 32-Bit (x86) ist, wird der Fehler auch nach der Installation von .NET 4.0 angezeigt. Nach diesem Artikel ich .Net 3.5 installiert und dann hat es auf x86 Office funktioniert!

Außerdem muss hier das VSTO Runtime 3.0-Formular installiert werden .

2. Das Add-In wird nicht geladen.

Stellen Sie sicher, dass Sie die Registrierungsschlüssel richtig geschrieben haben. Gelegentlich tippe ich Verhalten ein, aber in der amerikanischen Rechtschreibung ist Verhalten. Überprüfen Sie daher "LoadBehavior".

Geben Sie hier die Bildbeschreibung ein

Stellen Sie außerdem sicher, dass "LoadBehavior" 3 ist. Eine Liste der Werte finden Sie unter http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior

3. Das Add-In ist nicht sichtbar.

Sie können das Add-In sichtbar machen, indem Sie zu Excel> Datei> Optionen> Add-Ins gehen> die Dropdown-Liste Verwalten auswählen und auf COM-Add-Ins setzen> Klicken Sie auf GO. Stellen Sie im Dialogfeld COM-Add-Ins sicher, dass Add-In aktiviert ist.

4. Das Add-In wurde deaktiviert.

Alternativ kann das Add-In ausgeblendet werden, da es deaktiviert wurde. Sie können das Add-In aktivieren, indem Sie zu Excel> Datei> Optionen> Add-Ins gehen> die Dropdown-Liste Verwalten auswählen und deaktivieren und auf GO klicken. Wählen Sie das deaktivierte Add-In aus und klicken Sie auf Aktivieren.

Geben Sie hier die Bildbeschreibung ein

5. Die benutzerdefinierte ExcelDNA-Formel wird nicht korrekt gerendert

Anstatt den Zellenwert zu sehen, sehen Sie: #NAME?

Legen Sie den folgenden Registrierungsschlüssel fest:

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options\OPEN:

Mit dem richtigen Wert:

/R "C:\Program Files\XYZ\XYZ Addin\ExcelDNA.XYZAddIn.xll"

6. Excel HANGS nach dem Anzeigen eines Meldungsfelds

Aktivieren Sie die Anwendungseinstellungen erneut:

xlApp.ScreenUpdating = true;
xlApp.DisplayAlerts = true;
xlApp.Calculation = XlCalculation.xlCalculationAutomatic;
xlApp.UserControl = true;
xlApp.EnableEvents = true;

7. Weitere Fehlerbehebung

Aktivieren Sie Ihre VSTO-Protokolldatei, indem Sie den Systemumgebungsvariablen Folgendes hinzufügen:

NAME: VSTO_LOGALERTS
VALUE: 1

Möglicherweise liegt ein Ausnahmefehler vor, weshalb Ihr Add-In nicht geladen wird.

Sie können diese Quelle auf weitere Informationen zur VSTO-Protokollierung und zu Warnungen überprüfen. Im Wesentlichen ändern Sie jedoch zwei Umgebungsvariablenwerte, je nachdem, was Sie tun müssen:

Anzeigen von VSTO-Warnmeldungen

Um jeden Fehler in einem Meldungsfeld anzuzeigen, setzen Sie die Variable VSTO_SUPPRESSDISPLAYALERTS auf 0 (Null). Sie können die Nachrichten unterdrücken, indem Sie die Variable auf 1 (eins) setzen.

Protokollieren von VSTO-Warnungen in einer Protokolldatei

Um die Fehler in eine Protokolldatei zu schreiben, setzen Sie die VSTO_LOGALERTSVariable auf 1 (eins).

Visual Studio Tools für Office erstellt die Protokolldatei in dem Ordner, der das Anwendungsmanifest enthält. Der Standardname lautet .manifest.log. Um die Protokollierung von Fehlern zu beenden, setzen Sie die Variable auf 0 (Null).

Jeremy Thompson
quelle
4). Das Add-In wurde deaktiviert. -> das hat es für mich getan!
Gilu
Managemuss eingestellt werden, Disabled Itemswar der Kicker für mich. Danke!
ΩmegaMan
7

Ich würde vorschlagen, ein Microsoft-Tool zur Diagnose von Add-In-Problemen namens AddinSpy zu verwenden .

Cédric Guillemette
quelle
Nachdem ich alle möglichen Dinge ausprobiert hatte, funktionierte dieses Tool für mich. Es stellt sich heraus, dass das Add-In geladen wurde, aber eine andere Abhängigkeit (eine DLL) nicht geladen wurde, weil "Diese Assembly wird von einer Laufzeit erstellt, die neuer als die aktuell geladene Laufzeit ist und nicht geladen werden kann". AddinSpy hat mir geholfen, diese Fehlermeldung zu erhalten.
Floatingfrisbee
Es ist wirklich enttäuschend, dass dies eine tote Verbindung ist. Ich denke, das hätte mir geholfen, mein Problem zu lösen.
RubberDuck
Möglicherweise möchten Sie nach einem Download-Speicherort suchen. Hier ist eine Seite, um zu sehen, wie es aussah: msdn.microsoft.com/en-us/library/cc984533%28v=office.12%29.aspx
Cédric Guillemette
1
Wenn es Ihnen nichts ausmacht, es selbst zu erstellen, ist die (inoffizielle) Quelle für AddInSpy bei GitHub erhältlich: github.com/NetOfficeFw/AddInSpy
Jon Iles
1

Komisch für mich, ich habe einen Neustart versucht. Es wurde für mich behoben. Der Grund, warum es für mich behoben wurde, ist, dass ich eine betrügerische Excel.exe hatte, die versteckt lief. Das Add-In wurde nicht gestartet, da diese andere Excel-Anwendung ausgeführt wurde (ich habe eine MSAccess-Anwendung auf VSTO migriert), sodass in Access eine Automatisierungs-App ausgeblendet war.

Kurz gesagt, wenn Ihr Add-In nicht gestartet wird, überprüfen Sie schnell, ob keine anderen Excel-Anwendungen ausgeführt werden. Dies gilt natürlich nur, wenn Sie versuchen, eine brandneue zu installieren / in Betrieb zu nehmen.

(Ich habe diesen Link verwendet) https://www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/

realPT
quelle
1

Hier gibt es auch eine andere Möglichkeit, warum Sie trotz der oben genannten Umgebungsvariablen kein Feedback erhalten. Ich habe festgestellt, dass Sie, wenn Sie diesen Fehler nach einer Installation erhalten haben (keine frühere VSTO, die funktioniert hat), auch die Registrierung und das "Manifest" überprüfen sollten. Eintrag falls Sie einen haben.

Während Jeremy Thompson in seinem zweiten Aufzählungspunkt auf die Registrierung hinweist, zeigt er nicht den Manifest- Eintrag an, der Teil Ihrer Registrierungseinstellungen sein könnte. Wenn Ihr Manifest-Eintrag nicht auf den richtigen Pfad und die richtige Datei verweist, wird er in der Add-Ins-Liste mit dem Eintrag "Nicht geladen" angezeigt .

Hier sehen wir einen fehlerhaften Eintrag, der nur auf die VSTO-Datei verweist, keinen Pfad. Geben Sie hier die Bildbeschreibung ein

Dies führt dazu, dass Ihr AddIn so aussieht, als wäre es voller Fehler, aber es tauchen keine Fehler auf und erscheinen für Sie und machen die Dinge frustrierend. Beachten Sie also, dass der unten stehende Standorteintrag den Pfad ebenfalls nicht anzeigt. Geben Sie hier die Bildbeschreibung ein

Korrigieren Sie den Eintrag, indem Sie den richtigen Pfad zusammen mit dem Dateinamen eingeben. Dies wird behoben.

Ich nehme an, dass das Fehlen von Fehlern darauf zurückzuführen ist, dass Sie anfangs auf nichts gezeigt haben. Daher wird das AddIn aufgelistet, da es sich in der Registrierung befindet, obwohl nichts geladen werden muss.

Brian H.
quelle
0

Schließlich überredete ich Word, mir zu sagen:

    Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateStartupObjectException: 
Could not create an instance of startup object blaghblagh ---> 
System.TypeInitializationException: The type initializer for 'foo' threw an exception. ---> 
System.IO.FileNotFoundException: Could not load file or assembly 'blah' or one of its dependencies. 
The system cannot find the file specified.

Danach löste FusLogvw dank [1] das Problem schnell für mich.

[1] Datei oder Assembly oder eine ihrer Abhängigkeiten konnte nicht geladen werden

JasonPlutext
quelle