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

13

我正在使用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个回答

15

链接已失效,请提供更多内容。 - millokeller

2

嗯,这里的反应不是很多,但我找到了一个让我感觉舒适的解决方案。 我有一个ProductAssemblyInfo,在解决方案文件夹中,但如下所示,它被链接到每个项目中。

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

产品级装配包含以下行:
[assembly: AssemblyKeyFile("../../Build/MyKey.snk")]

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


1
AssemblyKeyFile已被弃用。 - Nick
弃用?源代码? - knocte

0

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

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


这个答案在技术上是可行的。但请记住,您的私钥文件(.snk)就像一个证明“我们是我们所说的那样”的东西......因此拥有它的副本可能会造成安全风险。因此我同意这个答案,但也需要免责声明(在我看来)。 - granadaCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接