Frage

Ich habe eine DSL -Tools -Lösung.

Ich muss einen schwach genannten Verweis auf dieses Projekt hinzufügen. Da das DSL-Tools-Projekt DLL stark benannt ist, kann ich die schwach benannte DLL nicht verwenden.

Ich kann die DLL nicht stark machen, weil ich sie nicht neu kompilieren kann.

Ich habe versucht, meine DSL-Tools-Projekte mit DLL schwach zu machen, indem ich die Eigenschaften von DSL- und DSLPackage-Projekten bezeichnete und die Option "Sign the Assembly" auf der Registerkarte Sigining deaktivierte.

Dann kompile ich es. Die Fehlerliste gibt den folgenden Fehler an

"gacutil.exe" exited with code 1

Wenn ich das VS2005 -Ausgangsfenster betrachte, sehe ich, dass Gacutil angerufen wird

C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"

Danach habe ich die Eingabeaufforderung verwendet, und der Fehler von Gacutil.exe wird wie folgt angezeigt:

Z:\>"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\gacutil.exe" -nologo -i "C:\Academy\ResearchAndDevelopment\FrontendGenerator\DslPackage\bin\Debug\vantyx.FEGenerator.DslPackage.dll"
Failure adding assembly to the cache: Attempt to install an assembly without a strong name

Ich weiß nicht warum und wie Gacutil.exe genannt wird. Ich habe mir die Projekt- und Lösungseigenschaften angesehen und es gibt keine Option, um gacutil.exe aufzurufen. Ich habe sogar jede Datei nach "gacutil.exe" geschaut, aber ich fand nichts.

Was ich wirklich möchte, ist in der Lage, die schwach benannte DLL zu verwenden, die ich nicht stark genannt machen kann. Infolgedessen habe ich versucht, meine DSL-Tools DLL schwach zu machen, aber ich kann nicht.

Irgendwelche Hilfe dafür, wie ich das zusammenarbeiten kann?

Vielen Dank im Voraus, Luís Filipe

War es hilfreich?

Lösung

Die Verwendung von Laufzeitbindung mit Reflexion ist eine gute Lösung und funktioniert. Die andere Lösung, die ich außerdem implementiert habe, besteht darin, eine separate AppDomain zu starten und diese Appdomain das Laden der Baugruppe durchzuführen und alle gewünschten Methoden auszuführen. Der Nachteil dieses Ansatzes ist die zusätzliche Komplexität und Leistung. Man muss wirklich wissen, was er tut, da er in der Praxis eine separate .NET -Anwendung im Prozessbereich von Visual Studios auf den Markt bringt. Der Vorteil ist, dass Sie mit einiger Sorgfalt die Sicherheit auf dem ganzen Weg erhalten können.

Andere Tipps

Mit Ausnahme der oben geschriebenen Antwort müssen alle Add-Ins für Visual Studio stark bezeichnet werden.

Man kann einige der Probleme durchführen, indem die Montage in der Laufzeit geladen und Reflexion verwendet wird, um Methoden aufzurufen.

Grüße, Luís

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top