2008-12-04 7 views
0

J'ai une solution DSL Tools.DSL Tools: Comment créer la DLL avec un nom faible

Je dois ajouter une référence avec un nom faible à ce projet. Étant donné que le DLL du projet DSL Tools est fortement nommé, je ne peux pas utiliser la DLL avec un nom faible.

Je ne peux pas rendre la DLL nommée avec force car je ne peux pas la recompiler.

J'ai essayé de rendre le nom de projet DLL de mon outil DSL faible en allant dans les propriétés du projet Dsl et DslPackage et décoché 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 

regardant la fenêtre de sortie de VS2005 je vois 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 que je l'ai utilisé l'invite de commande et l'erreur de gacutil.exe affiche que celui-ci :

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 gacutil.exe est appelé. J'ai regardé les propriétés du projet et de la solution et aucune option n'est configurée pour appeler gacutil.exe. J'ai même regardé à l'intérieur de chaque fichier pour "gacutil.exe" mais je n'ai rien trouvé.

Ce que je veux vraiment, c'est pouvoir utiliser la DLL avec un nom faible que je ne peux pas nommer fort. À la suite de cela, j'ai essayé de rendre ma DLL DSL Tools faible mais je ne peux pas.

Une aide sur comment je peux contourner ce problème?

Un grand merci à l'avance, Luís Filipe

Répondre

1

Utilisation d'exécution avec la liaison REFLEXION une bonne solution et travaille. L'autre solution que j'ai implémentée à part celle-là est de lancer un AppDomain séparé et de faire en sorte que AppDomain fasse le chargement de l'assembly et exécute toutes les méthodes que vous voulez. L'inconvénient de cette approche est la complexité et la performance supplémentaires. Il faut vraiment savoir ce qu'il fait, car il est en train de lancer une application .net séparée dans l'espace de processus de Visual Studio. L'avantage est qu'avec un certain soin, vous pouvez obtenir la sécurité de type tout le chemin.

1

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

Vous pouvez contourner certains des problèmes en chargeant l'assembly à l'exécution et en utilisant la réflexion pour invoquer des méthodes.

Cordialement, Luís

Questions connexes