如何修复错误“CS7032密钥文件'myfile.snk'缺少签名所需的私钥

时间:2017-08-09 16:24:31

标签: c# visual-studio unit-testing

我第一次在VS2015上开发的项目中使用Intellitest。

按照指示,我右键单击我的方法名称,然后从菜单中选择“运行Intellitest”。这将在项目中按预期创建我的测试,其中包含属性和参考文件夹以及测试文件本身。

然而,当我构建它时,我收到此错误:

  

错误CS7032密钥文件'myFile.snk'缺少所需的私钥   签署

我知道带有'snk'扩展名的文件是什么,但我不知道为什么我会收到此错误,特别是当我正在做的是构建Visual Studio创建的内容时。我已经在同一解决方案中的其他项目中检查了此文件与其他实例相同。我不知道如何解决这个问题。

我需要做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:0)

SNK文件有两种类型。

  1. 最常见的情况是它包含公钥和私钥。
  2. 它也只能包含公钥。这似乎是你的情况。
  3. 如果您的SNK文件只包含公钥,则必须检查"仅限延迟标记"您项目的属性 - >签名标签下的选项。

    可以在此处找到延迟签名信息:https://docs.microsoft.com/en-us/dotnet/framework/app-domains/delay-sign-assembly

    简而言之,要真正签署程序集,您需要私钥和公钥。延迟签名将公钥作为占位符放入程序集清单中。以后应该通过官方签署过程覆盖它。这通常由公司完成,以允许开发人员生成"签署"没有分发官方密钥的程序集。安全地包含官方密钥的构建实验室/系统将构建官方程序集并使用公司的官方密钥进行签名。