在Visual Studio 2012 SDK默认VSPackage的模板生成它使用强命名的项目。
因为强命名是传递的,这意味着任何引用我补充(例如,在同一个解决方案的另一个项目,或者第三方的依赖),也需要强大的命名。
因为我觉得不舒服强命名第三方依赖,我更愿意从我的VSIX除去强命名。
什么是这样做的缺点是什么?
在Visual Studio 2012 SDK默认VSPackage的模板生成它使用强命名的项目。
因为强命名是传递的,这意味着任何引用我补充(例如,在同一个解决方案的另一个项目,或者第三方的依赖),也需要强大的命名。
因为我觉得不舒服强命名第三方依赖,我更愿意从我的VSIX除去强命名。
什么是这样做的缺点是什么?
如果您已经VSIX部署的,并不需要在GAC什么,那么没有时,Visual Studio不作任何要求,你是强名称签名。 我相信模板向导确实需要强名称签名,但只是因为必须将它们安装到GAC。
我能想到的你可能想反正有几个原因:如果你的包公开了一个公共的API,其他扩展消费,你可能会引用一个共同的DLL的其他人消费的公共API。 你可能想强名称签署的公共接口二进制文件,并根据您的项目如何设置,您可能需要强名称签署的一切。
另外,如果你没有强烈的名字的牌子,你做风险名称冲突与其他扩展。 如果你创建了一个名为“Package.dll” DLL和另一部分也做了,而且都没有你强名称签名的二进制文件,它是可能的CLR会得到一个有点困惑在这里。 所以,如果你不强名称签名,请确保您的组件名称为“唯一不够”来规避这种风险。
对于它的价值,当我们在内部测试罗斯林语言服务,我们只需安装一个包含所有罗斯林位的VSIX这样做。 快速挖通源控制历史意味着我们没有强名称签署我们的二进制包,第一年半的时间,直到我们最终不得不为航运代码从微软这一进程的一部分。