2013-05-08 5 views
8

Le modèle VSPackage par défaut dans Visual Studio 2012 SDK génère un projet qui utilise un nom fort. Comme la dénomination forte est transitive, cela signifie que toutes les références que j'ajoute (par exemple un autre projet dans la même solution, ou une dépendance tierce) doivent également avoir un nom fort.Les extensions Visual Studio (VSIX) doivent-elles avoir un nom fort?

Étant donné que je ne me sens pas à l'aise de nommer les dépendances tierces, je préférerais enlever le nom fort de mon VSIX.

Quels sont les inconvénients de faire cela?

+0

Lorsque je supprime un nom fort de mon VSIX, l'extension ne se déploie pas (apparaît) dans Visual Studio. J'utilise Visual Studio 2015. –

Répondre

4

Si vous êtes déjà déployable au format VSIX et n'avez besoin de rien dans le GAC, alors Visual Studio ne vous oblige pas à signer un nom fort. Je pense que les assistants de modèles nécessitent une signature forte, mais uniquement parce qu'ils doivent être installés dans le GAC.

Je peux penser à quelques raisons que vous pourriez vouloir de toute façon: Si votre paquet expose une API publique que d'autres extensions consomment, vous pourriez référencer une DLL commune comme les autres personnes consommant votre API publique. Vous souhaiterez peut-être signer de manière forte le binaire d'interface publique, et en fonction de la configuration de vos projets, vous devrez peut-être signer un nom fort. En outre, si vous n'avez pas de signe de nom fort, vous risquez une collision de nom avec une autre extension. Si vous avez créé une DLL nommée "Package.dll" et qu'une autre extension l'a également fait, et qu'aucun de vous n'a signé vos binaires, il est possible que le CLR soit un peu confus ici. Donc, si vous n'avez pas signé de nom fort, assurez-vous que votre nom d'assembly est "assez unique" pour éviter ce risque.

Pour ce que ça vaut, quand nous testons les services en langue Roslyn en interne, nous le faisons simplement en installant un VSIX qui contient tous les bits de Roslyn. Une recherche rapide dans l'historique du contrôle des sources implique que nous n'avons pas signé nos fichiers binaires pour la première année et demie, jusqu'à ce que nous devions le faire dans le cadre du processus d'expédition du code de Microsoft.

+1

> Je crois que les assistants de modèle nécessitent une signature forte, mais seulement parce qu'ils doivent être installés dans le GAC. C'est incorrect. Ils doivent être bien nommés, mais n'ont pas besoin d'être dans le GAC. – kzu

Questions connexes