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?
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.
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).
Tags und Links c# excel vsto clr-hosting