【问题标题】:How to fix error "CS7032 Key file 'myfile.snk' is missing the private key needed for signing如何修复错误“CS7032 密钥文件 'myfile.snk' 缺少签名所需的私钥
【发布时间】:2017-08-09 16:24:31
【问题描述】:

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

按照指示,我右键单击我的方法名称并从菜单中选择“运行 Intellitetest”。正如预期的那样,这将在项目中创建我的测试,其中包含属性和引用文件夹以及测试文件本身。

但是,当我构建它时,我得到了这个错误:

错误 CS7032 密钥文件“myFile.snk”缺少所需的私钥 用于签名

我知道扩展名为“snk”的文件是做什么用的,但我不知道为什么会出现这个错误,尤其是当我所做的只是构建 Visual Studio 创建的东西时。我已将此文件与同一解决方案中其他项目中的其他实例一起检查,这些实例看起来相同。我不知道如何解决这个问题。

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

【问题讨论】:

    标签: c# visual-studio unit-testing


    【解决方案1】:

    SNK 文件有两种类型。

    1. 最常见的情况是它包含一个公钥和一个私钥。
    2. 它也只能包含一个公钥。这似乎是你的情况。

    当您的 SNK 文件只包含公钥时,您必须在项目的“属性”->“签名”选项卡下选中“仅延迟签名”选项。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 2014-10-09
      • 2022-09-25
      • 2022-12-05
      • 2012-01-24
      相关资源
      最近更新 更多