在Machine.Specifications github 页面上,我可以下载已签名和未签名的二进制文件,建议使用未签名的二进制文件。
在我的 .net 项目中,所有程序集都应由密钥签名。这是外部要求。
我还使用 InternalsVisibleTo 属性为单元测试程序集提供对所有其他程序集的内部成员的访问。如果您在签名程序集上使用 InternalsVisibleTo 属性,则也应该对将访问内部的程序集进行签名。
所以我的单元测试程序集应该签名。这意味着我不能使用任何单元测试框架的未签名版本。
我在 Nuget 上找到了 Machine.Specifications 的签名版本,但我也想使用Machine.Fakes作为自动模拟容器并且找不到 Machine.Fakes 的签名版本。
所以我不能在我的项目中使用 Machine.Fakes。
我只是不明白,在我的情况下,我该如何遵循“推荐方式”?可能我应该添加主要程序集的条件编译 - 用于单元测试的未签名版本和用于发布的签名版本?