用于签名程序集的私有访问器以及InternalsVisibleTo

时间:2011-12-05 12:26:50

标签: visual-studio unit-testing strongname

我在我的项目中使用Visual Studio 2010单元测试功能。我在尝试创建私有访问器时遇到了问题。

MyProject的:

  • 强名称密钥受密码保护(.pfx文件而不是.snk)
  • 我使用InternalsVisibleTo属性来访问MyProject.Tests
  • 的内部
  • 使用sn -Vr ...跳过(在开发系统上)密钥的验证,以允许在发布版本中进行检测;为了获得代码覆盖率。这是因为Visual Studio does not support password protected keys的工具部分。

MyProject.Tests:

  • 使用与MyProject相同的密钥签名,以允许使用InternalsVisibleTo
  • 我正在尝试在此项目中生成一个私有访问器来测试一些私有方法。

当尝试使用新添加的私有访问器编译测试项目时,我收到以下错误消息:

  

处理程序集“MyProject.dll”时出错:无法执行   获取StrongNameKeyPair的公钥。

我浏览了互联网有关错误消息,但我能找到的唯一解决方案是禁用对测试项目的签名。这样做意味着我无法再使用InternalsVisibleTo。如果我重写内部成员的所有现有单元测试以使用阴影类型,它可能会有效,但显然我不想这样做。

还有更好的选择吗?


如果重要:强名称密钥受密码保护,因为源代码控制系统相当公开,但我想阻止开发团队以外的任何人访问。

0 个答案:

没有答案