在Machine.Specifications github页面上,我可以下载已签名和未签名的二进制文件,建议使用未签名的二进制文件。
在我的.net项目中,所有程序集都应该用密钥签名。这是外部要求。
此外,我使用InternalsVisibleTo属性为单元测试程序集提供对所有其他程序集的内部成员的访问。 如果在签名的程序集上使用InternalsVisibleTo属性,则应该对将访问内部的程序集进行签名。
所以我的单元测试组件应该签名。 这意味着我不能使用任何单元测试框架的无符号版本。
我在Nuget上找到了Machine.Specifications的签名版本,但我还想使用 Machine.Fakes 作为自动插件容器,找不到Machine.Fakes的签名版本。
所以我不能在我的项目中使用Machine.Fakes。
我无法理解,在我的案例中如何遵循“推荐的方式”? 可能我应该添加主要程序集的条件编译 - 用于单元测试的未签名版本和用于发布的签名版本?
答案 0 :(得分:1)
我看到三个选项:
没有Machine.Fakes的签名版本,因为到目前为止还没有人需要它。我见过issue you filed,但我还没来得及看看它。所以还有另一种选择:等我创建一个签名版本。 :-)然而,我不确定我是否以及如何做到这一点。
答案 1 :(得分:1)
使用签名版本时,还需要签名的ReSharper运行程序。两个版本都需要匹配。
使用未签名的版本,只要内部API兼容,就可以在ReSharper和您的项目中使用另一个版本。
从我的观点来看,前者更麻烦(保持两个版本同步),因此建议。这也是我用来测试和我自己的工作。