Ich habe ein paar Excel 2003/2007 Add-Ins mit VSTO geschrieben, und ich am Ende referenzieren .NET DLLs im VSTO-Projekt (in der Regel Code, den ich über Projekte wiederverwenden).
Ich stieß auf das folgende Problem. Während die Aufrufe der DLL im Debug-Modus oder auf dem Entwicklungscomputer einwandfrei funktionieren, wird die DLL beim Hinzufügen des Add-Ins über ein MSI-Installationsprogramm zum Ordner des Add-Ins hinzugefügt, das Add-In jedoch nicht scheinen die dll anrufen zu können.
Nach einigen Schwierigkeiten habe ich einen Weg gefunden: Neben der benutzerdefinierten Aktion im Installationsprogramm, die dem Add-In Sicherheit gewährt, füge ich eine weitere benutzerdefinierte Aktion hinzu, die jeder einzelnen DLL, die vom Add-In aufgerufen wird, Sicherheit gewährt die Schritte, die in
http://msdn.microsoft.com/en-us/library/bb332052.aspxWie wird eine referenzierte Assembly zur Bereitstellung eines VSTO-Projekts hinzugefügt?
Mein Problem ist, dass, während es funktioniert, ich nicht überzeugt bin, dass ich es richtig mache. Es ist super-langweilig, und ich bekomme auch eine Warnung, wenn ich baue, was von dem, was ich machen kann, tatsächlich darauf hinweist, dass die Sicherheit zweimal am selben Ort gewährt wird.
Jeder hier kann mir sagen, ob ich es richtig mache oder nicht, und was ist der bessere Weg, wenn es einen gibt?
Ich brauche das ausprobieren, bevor diese als gültige Antwort-Kennzeichnung, aber das sieht sinnvoll. – Mathias
Sie können auch eine URL als Beweis verwenden und die URL zu Ihrem Installationsverzeichnis festlegen. Dadurch erhalten alle Assemblies in diesem Ordner FullTrust. Ich empfehle das jedoch nicht. Jemand könnte eine böswillige Assembly in Ihrem Installationsordner ablegen, die ihm volles Vertrauen schenkt, und dann könnte Ihnen jemand die Schuld an einer Sicherheitslücke geben. Ich erwähne das nur für den Fall, dass jemand es vorschlägt, damit Sie sehen, warum das keine gute Idee ist. – HackedByChinese
Danke, ich glaube es funktioniert. Ich fand diesen Beitrag tatsächlich im msdn-Forum, das eine kleine Modifikation des SetSecurity-Projekts vorschlägt, die es erlaubt, eine durch Kommas getrennte Liste von DLLs anstelle einer einzelnen DLL (Lex007-Beitrag im Thread) hinzuzufügen. Auf diese Weise müssen Sie nicht den gleichen Schlüssel teilen. http://social.msdn.microsoft.com/forums/en-US/vsto/thread/cec6abb6-4716-4bde-91f2-25fb68abd54e/ – Mathias