多个项目需要使用1个SNK文件

时间:2010-02-12 14:17:08

标签: .net visual-studio visual-studio-2008 strongname snk

我正在使用Visual Studio 2008,我有一个包含多个项目的解决方案。我有一个snk来签署我的程序集,它存在于一个解决方案文件夹中。

我已将snk链接到我的每个项目,但现在当我尝试使用该链接的snk签署我的项目时,我找不到带有文件对话框的snk文件。

我错过了一步吗?

Solution
   > Solution Folder
       MyKey.snk
   > Project X
       > _LinkedFiles
           MyKey.snk (physical file doesn't appear here but shows in VS)
       > ...

3 个答案:

答案 0 :(得分:15)

跨项目共享强名称密钥文件:

http://blogs.msdn.com/shawnfa/archive/2006/04/24/582278.aspx

答案 1 :(得分:2)

嗯,这里反应不多,但我确实找到了一个我很满意的解决方案。我有一个ProductAssemblyInfo,它存在于一个解决方案文件夹中,但链接到每个项目,如下所示。

Solution
   > Build (Solution Folder)
       MyKey.snk
       ProductAssemblyInfo.cs
   > Project X
       > _LinkedFiles
           ProductAssemblyInfo.cs
       > ...

ProductLevelAssembly包含以下行:

[assembly: AssemblyKeyFile("../../Build/MyKey.snk")]

这样,密钥文件永远不会被复制到每个项目中,但每个程序集仍然由密钥签名。

答案 2 :(得分:0)

不要链接它,只需复制它。如果重建SNK,则需要再次将其复制到所有项目,但是需要这样做的可能性非常低。实际上,我们只在修改主要版本号时更改SNK。

此外,当您链接文件时,您将其链接到解决方案文件中,而不是制作同时编辑这两个位置的副本。浏览对话框仅显示驱动器上存在的文件。