1

又一年,关于痣的另一个问题。我有一个带有内部密封类的程序集,我想在我用于单元测试的测试项目中使用它。

根据 Moles 文档,我应该添加一个

[assembly: InternalsVisibleTo( "MyAssembly.Moles" )]

属性,以便我可以从我的测试项目中访问内部类。但是,不幸的是,这不起作用,因为“MyAssembly”是强签名的。

因此,按照文档,我将公钥添加到上面的行中,导致

[assembly: InternalsVisibleTo( "MyAssembly.Moles, PublicKey=0123456..." )]

不幸的是,现在编译“MyAssembly”时出现以下错误:

程序集引用“MyMoles.Moles,PublicKey=0123456...”无效,无法解析

文档说“...... Moles 框架总是使用相同的密钥来签署程序集......”,但正如编译器所说,这不起作用。我还使用 Reflector 检查了生成的文件“MyAssembly.Moles.dll”,以验证我使用了正确的公钥(我这样做了),所以我被卡住了,因为我真的不知道问题出在哪里。

有任何想法吗?

4

1 回答 1

3

确保您输入的是PUBLIC KEY,而不是PUBLIC KEY TOKEN

如果这不起作用,请使用secutil获取公钥。详细输出将包括正确的键值。这是您需要使用的语法:

C:\> secutil -hex -s MyAssemblyName.dll
于 2012-01-05T17:40:14.720 回答