13

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

我已将 snk 链接到我的每个项目,但现在当我尝试使用链接的 snk 签署我的项目时,我无法通过文件对话框找到 snk 文件。

我在这里错过了一步吗?

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

3 回答 3

15

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

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

于 2010-03-23T13:58:33.420 回答
2

好吧,这里没有太多回应,但我确实找到了一个我很满意的解决方案。我有一个 ProductAssemblyInfo,它位于解决方案文件夹中,但链接到每个项目,如下所示。

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

ProductLevelAssembly 包含以下行:

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

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

于 2010-02-20T07:47:26.867 回答
0

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

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

于 2010-02-12T14:25:52.977 回答