MSTest运行失败,因为源程序集不受信任

时间:2008-10-14 14:15:50

标签: mstest

我刚刚将xUnit添加到我们的测试项目中(对于Asserts,我们仍然使用MSTest作为框架)并且测试运行立即拒绝执行任何测试。这是错误消息:

  

无法对测试运行'{....}进行排队   测试运行部署问题:   文件或目录的位置   '... xUnit.dll'不受信任。

10 个答案:

答案 0 :(得分:98)

我花了几次尝试在谷歌找到答案,所以我把它放在这里以防万一其他人遇到同样的问题。详细说明可在this blog posting找到。

基本上,修复程序会在Windows资源管理器中右键单击dll文件(例如xunit.dll),转到“属性”,然后单击“安全”文本旁边选项卡底部的“取消阻止”。似乎Vista / Windows 2008会自动将来自其他机器或互联网的程序集标记为不安全。

正如一些评论者提到的那样,您可能还需要重新启动Visual Studio才能生效。

答案 1 :(得分:17)

在我的团队中,我们遇到了同样的问题。

您的解决方案不起作用,但this post by Charles Sterling确实有所帮助。

我们使用以下行:

caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare

答案 2 :(得分:10)

在遇到这个问题并且燃烧时间试图让“解锁”持续时间超过几分钟和/或搞清楚 caspol 无济于事之后,我终于通过谷歌发现了一点点花絮下次构建或重建项目时,程序集将再次被阻止,因为它们是从原始源位置重新复制的。 (我想我从来没有注意到这发生在引用程序集之前,但无论如何......)

我对此的解决方法如下:

  1. 将所有需要的DLL复制到另一个DLL 保管现场

  2. 删除 Visual Studio中的引用

  3. 以物理方式删除中的DLL bin文件夹

  4. 取消阻止DLL 单独在他们的地方 被复制了

  5. 添加引用 回到Visual Studio中 持有现货

  6. 之后的每个后续构建或重建都运行良好。

答案 3 :(得分:8)

在XP机器上运行(即使安装了.NET 3.5 SP1)我也无法获得此处列出的任何其他解决方案。

然而,在Davy Landman引用的post by Charles Sterling工作时,我终于成功了这个变化:

  1. 运行.NET 2.0配置工具(设置...控制面板...管理工具... .NET Framework 2.0配置)
  2. 点击“我的电脑...运行时安全政策...机器...代码组... All_Code”
  3. 创建一个成员条件为“Zone”=“Local Intranet”的新代码组,并分配权限集“FullTrust”
  4. 重新启动Visual Studio
  5. 完成这些步骤后,我可以运行测试,包括重启和重建后。

    编辑:如this answer中所述,您可能需要安装.NET SDK(与.NET框架不同)才能在您的系统上安装.NET 2.0配置工具。

答案 4 :(得分:4)

我遇到了与moq相同的问题。但不会“解锁”。每次我解锁它,它仍然被阻止!?!?

我必须取消阻止我下载的原始zip文件。然后再次从zip文件中复制DLL。它之后工作。

答案 5 :(得分:3)

现在看起来很明显,但是当我点击取消阻止时,文件被设置为只读。

只有在取消检查该属性后,才应用,然后选择取消阻止,我实际上是否正常工作。

放手一搏。

:)

PS:我还删除了bin文件夹中的所有旧dll,只是为了确保Visual Studio没有拿到旧的。

答案 6 :(得分:1)

我遇到了与Vista阻止的已下载DLL相同的问题。 您需要管理员权限才能获取文件属性上的“取消阻止”按钮。 我简单地用源代码控制(TFS)中的最新版本替换了DLL,之前我已经提交了它们。

答案 7 :(得分:1)

  • 转到file
  • 右键单击并选择Properties
  • 在第一个注册表上,点击Allow

答案 8 :(得分:0)

我也尝试在notepad ++中打开文件并重命名。 略有不同的方法,但它对我有用。然后本地文件系统认为它来自同一台机器。

答案 9 :(得分:0)

这不仅仅是需要解除阻止的moq.dll。最新的zip文件包含moq.xml和moq.pdb文件 - 引用dll也会将这两个其他文件复制到bin文件夹中。如果所有这三个都没有被解锁,测试将无法运行,我找到了。