又一年,关于痣的另一个问题。我有一个带有内部密封类的程序集,我想在我用于单元测试的测试项目中使用它。
根据 Moles 文档,我应该添加一个
[assembly: InternalsVisibleTo( "MyAssembly.Moles" )]
属性,以便我可以从我的测试项目中访问内部类。但是,不幸的是,这不起作用,因为“MyAssembly”是强签名的。
因此,按照文档,我将公钥添加到上面的行中,导致
[assembly: InternalsVisibleTo( "MyAssembly.Moles, PublicKey=0123456..." )]
不幸的是,现在编译“MyAssembly”时出现以下错误:
程序集引用“MyMoles.Moles,PublicKey=0123456...”无效,无法解析
文档说“...... Moles 框架总是使用相同的密钥来签署程序集......”,但正如编译器所说,这不起作用。我还使用 Reflector 检查了生成的文件“MyAssembly.Moles.dll”,以验证我使用了正确的公钥(我这样做了),所以我被卡住了,因为我真的不知道问题出在哪里。
有任何想法吗?