Hoe los ik een VSTO-add-in op die niet laadt?

Mijn VSTO Outlook-invoegtoepassing werkte plotseling niet meer op de computer van één klant (hij laadt niet, geen foutmelding) en ik zit vast met het oplossen van problemen. De machine is Windows 7 x86, Outlook 2007. De invoegtoepassing is geschreven met Visual Studio 2008 en gebruikt VSTO 2005 met de 2003 PIA’s (omdat we ook Outlook 2003 moeten ondersteunen). Het werkt prima op andere machines.

Dit is wat ik heb geprobeerd om bruikbare uitvoer voor probleemoplossing te krijgen:

Niets. De invoegtoepassing wordt gewoon niet geladen zonder enigeindicatie van de reden te geven. Ik heb ook de “usual suspects” gecontroleerd (CAS-beleid, PIA’s geïnstalleerd, LoadBehavior in het register, VSTO en de invoegtoepassing opnieuw installeren).

Enkele andere observaties:

  • LoadBehaviorin het register blijft op 3.
  • De invoegtoepassing wordt weergegeven als “uitgeschakeld” in Outlook. Het aanvinken van het selectievakje in “COM-invoegtoepassingen” doet gewoon niets (geen fout, het selectievakje wordt weer gewist wanneer het formulier een tweede keer wordt ingevoerd).
  • Het werkt prima op andere machines van klanten, en het werkte prima op deze machine. (Nee, de klant kan me niet vertellen wat er op zijn machine is veranderd.)
  • Ik heb een Trace.WriteLine-bericht helemaal bovenaan mijn code (eerste regel in de ThisAddIn_Startup-handler), die niet wordt bereikt (ik controleerde met DebugView). De reden voor het niet laden is dus geen uitzondering in mijn invoegtoepassing, maar eerder een fout van VSTO om de invoegtoepassing te laden of van Outlook om VSTO te laden.

In plaats van meer willekeurige foutopsporing (“probeer dit…”, “probeer dat…”), zou ik graag Outlook en/of VSTO dwingen om me te vertellen wat er mis is, dwz om mij een nuttige foutmelding te geven in plaats van gewoon niets te doenwanneer ik de invoegtoepassing probeer in te schakelen. Om het even welke ideeën?


Antwoord 1, autoriteit 100%

Hier is wat meer informatie over de oplossing van RobertG5 (te lang voor een commentaar):

Het probleem was dat de invoegtoepassing hard uitgeschakeldwas door Outlook. Zoals ik heb geleerd, is dat iets anders dan het “gewone” scenario voor niet-laden. De sleutel om dit te realiseren was om op te merken dat de invoegtoepassing niet werd weergegeven onder Inactieve toepassingsinvoegtoepassingen, maar eerder onder Uitgeschakelde toepassingsinvoegtoepassingen. Dat maakt een verschil: in het laatste geval hoeft u alleen maar naar het COM-AddIn-scherm te gaan en het selectievakje aan te vinken. (Ik denk dat een mooi berichtvenster “Je kunt deze invoegtoepassing niet laden omdat deze hard is uitgeschakeld” te veel gevraagd zou zijn… zucht.)

Dus, hoe schakel ik een hard uitgeschakelde invoegtoepassing weer in?

  1. Wijzig in het vak BeherenCOM-invoegtoepassingenin Uitgeschakelde invoegtoepassingenen klik vervolgens op Start.
  2. Selecteer de invoegtoepassing en klik op Inschakelen. Klik op Sluiten.

OK, nu kan de invoegtoepassing opnieuw worden geladen:

  1. Wijzig in het vak BeherenUitgeschakelde invoegtoepassingenin COM-invoegtoepassingenen klik vervolgens op Start.
  2. selecteer het selectievakje naast de uitgeschakelde invoegtoepassing. Klik op OK.

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


Antwoord 2, autoriteit 95%

Heb je geprobeerd de invoegtoepassing opnieuw in te schakelen? Het wordt niet uitgevoerd nadat het in de uitgeschakelde wachtrij staat. Nadat u het opnieuw hebt ingeschakeld vanuit het uitgeschakelde invoegscherm, kunt u het vakje in het COM-AddIn-scherm aanvinken om het te laten laden, wat u dan meer details zou moeten vragen, aangezien u de variabele VSTO_SUPPRESSDISPLAYALERTSinstelt over wat er in de eerste plaats is gebeurd.


Antwoord 3, autoriteit 86%

Ik weet dat dit oud is, maar om verschillende redenen heb ik onlangs problemen opgelost met Office-invoegtoepassingen die niet worden geladen.

Het heeft enorm veel tijd gekost, dus ik dacht ik deel het, dus als je invoegtoepassing niet laadt of niet zichtbaar is, enz., probeer dan deze oplossingen.

1. De invoegtoepassing is niet geladen.

Niet geladen. Er is een runtime-fout opgetreden tijdens het laden van de COM-invoegtoepassing.

voer hier de afbeeldingsbeschrijving in

Het probleem wordt veroorzaakt door het ontbreken van .Net Framework 3.5 of 4.0.

Opmerking: als de Office-versie 64-bits(x64) is, heb ik alleen .Net 4.0 nodig. Als de kantoorversie echter 32-bits(x86) is, krijg ik de foutmelding ook na het installeren van .Net 4.0. Hierna artikel, ik heb .Net 3.5 geïnstalleerd en toen werkte het op de x86 Office!

Je moet VSTO Runtime 3.0 hier.

2. De invoegtoepassing is niet geladen.

Controleer nogmaals of u de registersleutels correct hebt gespeld. Af en toe typ ik Behaviour, maar in de Amerikaanse spelling is Behaviour, dus controleer “LoadBehavior”

voer hier de afbeeldingsbeschrijving in

Zorg er ook voor dat “LoadBehavior” 3 is, voor een lijst met waarden zie http://msdn.microsoft.com/en-us/library/vstudio/bb386106.aspx#LoadBehavior

3. De invoegtoepassing is niet zichtbaar.

U kunt de invoegtoepassing zichtbaar maken door naar Excel > Bestand > Opties > Invoegtoepassingen > selecteer de vervolgkeuzelijst Beheren en stel deze in op COM-invoegtoepassingen > Klik op GA. Zorg ervoor dat in het dialoogvenster COM-invoegtoepassingen de invoegtoepassing is aangevinkt.

4. De invoegtoepassing is uitgeschakeld.

Als alternatief kan de invoegtoepassing worden verborgen omdat deze is uitgeschakeld. U kunt de invoegtoepassing inschakelen door naar Excel > Bestand > Opties > Invoegtoepassingen > selecteer de vervolgkeuzelijst Beheren en stel deze in op Uitgeschakeld en klik op GO. Selecteer de invoegtoepassing die is uitgeschakeld en klik op Inschakelen.

voer hier de afbeeldingsbeschrijving in

5. De door de gebruiker gedefinieerde formule van ExcelDNA wordt niet correct weergegeven

In plaats van de celwaarde ziet u: #NAME?

Stel de volgende registersleutel in:

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

Met de juiste waarde:

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

6. Excel HANGT na het tonen van een berichtenbox

Schakel de applicatie-instellingen weer in:

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

7. Verdere probleemoplossing

Schakel uw VSTO-logbestand in door het volgende toe te voegen aan uw systeemomgevingsvariabelen:

NAME: VSTO_LOGALERTS
VALUE: 1

Er kan een uitzonderingsfout zijn waardoor uw invoegtoepassing niet wordt geladen.

Je kunt deze bron raadplegen voor meer informatieop VSTO-logboekregistratie en waarschuwingen, maar in wezen wijzigt u twee waarden van omgevingsvariabelen, afhankelijk van wat u moet doen:

VSTO-waarschuwingsprompts weergeven

Als u elke fout in een berichtvenster wilt weergeven, stelt u de
VSTO_SUPPRESSDISPLAYALERTS variabele op 0 (nul). Je kunt de . onderdrukken
berichten door de variabele in te stellen op 1 (één).

VSTO-waarschuwingen vastleggen in een logbestand

Als u de fouten naar een logbestand wilt schrijven, stelt u de variabele VSTO_LOGALERTSin
tot 1 (één).

Visual Studio Tools for Office maakt het logbestand aan in de map die:
bevat het toepassingsmanifest. De standaardnaam is .manifest.log.
Om fouten in het loggen te stoppen, stelt u de variabele in op 0 (nul).


Antwoord 4, autoriteit 14%

Ik raad aan om een ​​Microsoft-tool te gebruiken om problemen met invoegtoepassingen te diagnosticeren, genaamd AddinSpy.


Antwoord 5, autoriteit 2%

Grappig voor mij, ik heb geprobeerd opnieuw op te starten. Heb het voor mij opgelost. De reden waarom het het voor mij heeft opgelost, is dat ik een frauduleuze Excel.exe verborgen had lopen. De invoegtoepassing startte niet omdat deze andere Excel-toepassing actief was (ik migreerde een MSAccess-toepassing naar VSTO), dus Access had een automatiseringsapp open en verborgen.

Kortom, als uw invoegtoepassing niet opstart, moet u snel controleren of er geen andere Excel-toepassingen actief zijn. Dit is natuurlijk alleen van toepassing als u een geheel nieuwe probeert te installeren/in gebruik te nemen.

(ik heb deze link gebruikt)
https: //www.add-in-express.com/creating-addins-blog/2012/11/13/wix-installation-vsto-office-addin/


Antwoord 6, autoriteit 2%

Er is hier ook een andere mogelijkheid waarom u geen feedback krijgt, zelfs niet als de bovengenoemde omgevingsvariabelen zijn ingesteld. Ik ontdekte dat als je deze fout kreeg na een installatie (niet een eerdere VSTO die werkte), je ook het register en het item “Manifest”moet controleren als je er een hebt.

Terwijl Jeremy Thompson in zijn tweede opsommingsteken op het register wijst, toont hij niet het Manifest-item dat deel zou kunnen uitmaken van uw registerinstellingen. Als uw Manifest-item niet naar het juiste pad en bestand verwijst, wordt het weergegeven in de lijst met invoegtoepassingen met het item “Niet geladen”.

Hier zien we een slechte invoer die alleen naar het VSTO-bestand verwijst, geen pad.
voer hier de afbeeldingsbeschrijving in

Dit zorgt ervoor dat uw AddIn eruitziet alsof er fouten in zitten, maar er verschijnen geen fouten die voor u verschijnen en de zaken frustrerend maken. Dus het ziet er hieronder zo uit, merk op dat de locatie-invoer hieronder ook niet het pad laat zien.
voer hier de afbeeldingsbeschrijving in

Corrigeer het item door het juiste pad samen met de bestandsnaam in te voeren en het zal dit oplossen.

Ik neem aan dat het ontbreken van fouten komt door het feit dat je in eerste instantie naar niets wees, dus het vermeldt de invoegtoepassing omdat deze in het register staat, ook al is er niets om te laden.


Antwoord 7

Uiteindelijk heb ik Word overgehaald om me te vertellen:

   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.

Daarna heeft FusLogvw, dankzij [1], het probleem snel voor mij opgelost.

[1] Kan bestand niet laden of assembly of een van zijn afhankelijkheden

Other episodes