Wie funktioniert Excel VSTO?

8

Wie funktioniert Excel VSTO? Wenn ich eine Excel-Arbeitsmappenlösung in Visual Studio 2005 erstelle, kann ich dann gerne mit vollem Zugriff auf das Excel-Objektmodell programmieren und das Excel-Arbeitsblatt sogar als Entwurfsoberfläche behandeln. Wenn ich die Lösung erstelle, bekomme ich eine .XLS -Datei und eine .DLL (enthält meinen C # -Code).

Ich kann nun das Excel-Blatt starten, indem ich einfach auf .XLS klicke und mein Blatt funktioniert mit meinem ganzen C # -Code und allen Steuerelementen, die ich auf das Blatt geworfen habe, usw.

Wie bezieht sich das Blatt auf .DLL ? Welcher Teil der Excel-Arbeitsmappe / Arbeitsblatt sagt ihm, dass er die CLR starten und meine Assembly hosten muss?

    
ng5000 11.02.2009, 09:43
quelle

2 Antworten

7

Laut dies (danke PintSizedCat) für Excel 2003 passiert folgendes:

  

Die Microsoft Office-Anwendung   Überprüft die benutzerdefinierten Dokumenteigenschaften   um zu sehen, ob es verwalteten Code gibt   Erweiterungen im Zusammenhang mit der   Dokument. Weitere Informationen finden Sie unter   Übersicht über benutzerdefinierte Dokumenteigenschaften.

     

Wenn es verwaltete Code-Erweiterungen gibt,   Die Anwendung lädt AddinLoader.dll.   Dies ist eine nicht verwaltete DLL, die das ist   Ladekomponente für Visual Studio   2005 Tools für Office Second Edition   Laufzeit. Weitere Informationen finden Sie unter   Visual Studio-Tools für die Office-Laufzeit   Überblick.

     

AddinLoader.dll lädt das .NET   Framework und startet das verwaltete   Teil der Visual Studio Tools für   Office-Laufzeitumgebung.

     

Die Visual Studio-Tools für Office   Runtime erstellt eine Anwendungsdomäne,   legt die Richtlinie für die Anwendungsdomäne fest   der Computerzone nicht zu vertrauen, und   überprüft die Sicherheitsrichtlinie für den Codezugriff   speichern, um eine Richtlinie für das zu finden   Anpassungsbaugruppe.

     

Das .NET Framework validiert die   Beweise von der Versammlung vorgelegt   gegen die Politik. Wenn es fehlschlägt, a   Fehler wird ausgelöst. Wenn es passiert, die   Prozess wird fortgesetzt.

     

Wenn die Anpassung eine Bereitstellung verwendet   Manifest, die Visual Studio Tools für   Die Office-Laufzeitumgebung verwendet es zur Überprüfung   Baugruppenaktualisierungen Wenn irgendwelche Updates sind   notwendig, sie werden jetzt durchgeführt.

     

Die Visual Studio-Tools für Office   runtime lädt die Assembly in die   Anwendungsdomäne.

     

Die Visual Studio-Tools für Office   Laufzeit ruft das Startup-Ereignis auf   Handler in Ihrer Anpassung   Versammlung. Weitere Informationen finden Sie unter   Visual Studio-Tools für Office-Projekt   Ereignisse.

In der Excel-Arbeitsmappe meines Testprojekts habe ich zwei benutzerdefinierte Eigenschaften:

_AssemblyName, Wert = *  _AssemblyLocation, Wert = {533b2c13-a125-418a-bfff-9546b0762807}

Ich nehme an, das sind die Eigenschaften, die die VSTO-Laufzeit zu meiner Assembly leiten.

    
ng5000 11.02.2009, 10:23
quelle
5

Dies ist alles in der Registry, Sie sollten in der Lage sein, den Schlüssel in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel oder Ihre gleichwertige Anwendung zu finden. Ich habe mehr Erfahrung mit COM-Addins, die auch an anderer Stelle in der Registry registriert sind. Dieser Schlüssel sollte ein LoadBehaviour-Element enthalten, das verwendet wird, um zu bestimmen, wie die Anwendung geladen wird (2 wird manuell geladen, 3 wird beim Start automatisch geladen).

Haben Sie ein Setup-Projekt für Ihren VSTO? Darin können Sie den Registrierungsschlüssel sehen, der gesetzt ist, aber das Setup-Programm wird / sollte auch die VSTO in GAC registrieren (obwohl ich mein Wort dafür nicht nehme, da ich ein bisschen shakey mit VSTO bin, wie ich sagte) / p>

Hoffe, das hilft, ich werde versuchen, weitere Informationen für Sie zu finden.

Bearbeiten Sie sollten versuchen, das folgende Ссылка zu lesen, das Ihnen eine Erklärung dafür geben wird, was das Addin ist. Es ist wirklich nur ein Wrapper um einen COM-Host, der aus der Registry geladen wird und der VSTO spricht mit diesem einen Interoperabilitätscode.

Auch nützlich sind Ссылка (Erste Schritte mit Visual Studio Tools für Office, nicht klopfe es an, weil es Getting Started heißt, es gibt dort eine Menge nützlicher Informationen) und Ссылка (Was von der ersten verlinkt ist und einen Überblick über VSTO Addins gibt).

    
Henry B 11.02.2009 09:48
quelle

Tags und Links