Question

J'ai une solution d'outils DSL.

Je dois ajouter une référence faible à ce projet. Étant donné que la DLL du projet Outils DSL a un nom fort, je ne peux pas utiliser la DLL nommée faible.

Je ne peux pas donner à la DLL un nom fort, car je ne peux pas la recompiler.

J'ai essayé de donner un nom faible à la DLL de projet Outils DSL en accédant aux propriétés de projet Dsl et DslPackage et de décocher l'option "Signer l'assemblage". dans l'onglet Sigining.

Ensuite, je le compile. La liste des erreurs donne l'erreur suivante

"gacutil.exe" exited with code 1

En regardant la fenêtre de sortie de VS2005, je vois que gacutil est appelé

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"

Après cela, j’ai utilisé l’invite de commande et l’erreur gacutil.exe s’affiche comme ceci:

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

Je ne sais pas pourquoi et comment on appelle gacutil.exe. J'ai examiné les propriétés du projet et de la solution et il n'y a pas d'option configurée pour appeler gacutil.exe. J'ai même regardé dans chaque fichier pour " gacutil.exe " mais je n'ai rien trouvé.

Ce que je veux vraiment, c’est pouvoir utiliser la DLL de nom faible que je ne peux pas fabriquer avec un nom fort. En conséquence, j’ai essayé de donner à ma DLL DSL Tools un nom faible, mais je ne peux pas.

Avez-vous de l'aide pour résoudre ce problème?

Merci beaucoup d'avance, Lu Filipe

Était-ce utile?

La solution

L'utilisation de la liaison d'exécution avec réflexion est une bonne solution et qui fonctionne. L’autre solution que j’ai mise en œuvre à côté de celle-ci consiste à lancer un AppDomain séparé et à ce que AppDomain se charge du chargement de l’assembly et de l’exécution des méthodes souhaitées. L'inconvénient de cette approche est la complexité et les performances supplémentaires. Il faut vraiment savoir ce qu’il fait alors qu’il est en train de lancer une application .net séparée dans l’espace de processus de Visual Studio. L’avantage, c’est qu’avec un peu de prudence, vous pouvez être sûrs de la sécurité des caractères.

Autres conseils

À l'exception de la réponse écrite ci-dessus, Tous les compléments pour Visual Studio doivent avoir un nom fort.

Il est possible de résoudre certains problèmes en chargeant l'assembly au moment de l'exécution et en utilisant des méthodes de réflexion pour appeler.

Cordialement, Lu

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top