Meine Umgebung ist VS2005 C# Targeting Excel 2003. Ich gab mir eine kleine Dosis über das Vertrauen mit dem Installer dieses Add-Ins, als ich sah, dass ein .msi-Projekt war nur für mich innerhalb der Lösung erstellt. Unnötig zu sagen, das war der schwierigste Teil des gesamten Projekts und ich bin völlig darauf angewiesen, wie ich Full Trust für mein Add-In als Teil der Installation bereitstellen und einstellen kann.Excel-Add-In Installation und Einstellung .Net-Sicherheit/Vertrauen
Ich folgte dem sehr hilfreichen Beispiel von http://msdn.microsoft.com/en-us/library/aa537179(office.11).aspx - "Bereitstellen von Visual Studio 2005-Tools für Office-Lösungen mit Windows Installer: Walkthroughs (Teil 2 von 2)".
Es gab einige Ungenauigkeiten in diesem Dokument, aber wirklich kleine Dinge. Ich verwende ein VSTO 2005 Tools-Beispielprojekt, um die .net-Sicherheit als eine benutzerdefinierte Aktion der MSI festzulegen. Dies scheint zu funktionieren, erlaubt aber momentan nicht das Laden meines Plugins, es sei denn, ich ändere manuell ein paar Dinge mit dem .NET Framework Konfigurationstool. Nachdem die Installation abgeschlossen ist, sehe ich die entsprechenden Registrierungseinträge für Excel-Add-Ins und das entsprechende LoadBehavior von 0x03. Im Applet .Net 2.0 Framework-Konfiguration in der Systemsteuerung werden zwei Knoten zu meiner Laufzeit-Sicherheitsrichtlinie hinzugefügt.
Laufzeitsicherheitsrichtlinie -> Benutzer -> Codegruppen -> All_Code -> MyCodeGroup -> MyCodeGroupChild.
Die MyCodeGroup-Einstellungen sind auf URL-Validierung und Policylevel von NONE eingestellt. Die untergeordneten MyCodeGroup-Einstellungen sind STRONG NAME und stimmen mit dem überein, was ich für meine Add-In-DLL festgelegt habe.
In diesem Setup wird das Plugin nicht geladen. Wenn ich die "MyCodeGroup" Policy von None zu Full Trust ändern, funktioniert es. (Nachdem ich das Load Behavior meiner Registrierung von 0x02 zurück auf 0x03 zurückgesetzt habe).
Irgendwelche Ideen dazu? Ich habe nicht viel im Internet gefunden, um anzuzeigen, wo ich falsch liege.
Dies scheint mit den PIA (primäre Interop Assembly) DLLs verwandt zu sein. Ich habe diese auf dem gleichen Pfad wie meine DLL installiert. Wenn ich THOSE eine URL-basierte Sicherheitseinstellung hinzufüge, kann ich das Plugin OK ausführen. Ich habe die Installation der PIA.msi und der VSTO.msi noch nicht angesprochen, aber ich dachte nicht, dass ich sie seit meiner Entwicklungsmaschine installiert haben müsste. Wenn ich diese nicht in die Installation einbeziehe, läuft meine App jedoch nicht. Ich bin nicht sicher, was ich zusätzlich tun müsste, um diese zu installieren. Ich bin mir sicher, dass ich das mehrmals außerhalb meiner Entwicklungsumgebung getan habe. –
Sie können die PIA- und VSTO-Assemblys einfach normal installieren. Sie sollten die Sicherheit nicht speziell für diese festlegen müssen. ich tun würde (alle Büro schließen apps zuerst): 1. PIA installieren 2. VSTO Runtime installieren 3. Ihr Plug-in installieren 4. Stellen Sie die Sicherheit für Ihr Plug-in –
die PIA nicht bündeln Sie und VSTO Runtime mit Ihrer App. Schließen Sie sie vom Projektaufbau aus. Microsoft bietet separate Installationsprogramme für Benutzer an, bei denen die Sicherheitsrichtlinien nicht separat festgelegt werden müssen. –