我刚刚将 xUnit 添加到我们的测试项目中(对于 Asserts,我们仍然使用 MSTest 作为框架)并且测试运行立即拒绝执行任何测试。这是错误消息:
无法将测试运行“{ ....}”排队测试运行部署问题:文件或目录“...xUnit.dll”的位置不受信任。
我刚刚将 xUnit 添加到我们的测试项目中(对于 Asserts,我们仍然使用 MSTest 作为框架)并且测试运行立即拒绝执行任何测试。这是错误消息:
无法将测试运行“{ ....}”排队测试运行部署问题:文件或目录“...xUnit.dll”的位置不受信任。
我花了几次尝试在谷歌中找到答案,所以我把它放在这里以防其他人遇到同样的问题。可以在此博客文章中找到详细说明。
基本上,修复涉及在 Windows 资源管理器中右键单击 dll 文件(例如 xunit.dll),转到“属性”,然后单击“安全”文本旁边选项卡底部的“取消阻止”。Vista / Windows 2008 似乎会自动将来自其他机器或互联网的程序集标记为不安全。
正如一些评论者所提到的,您可能还需要重新启动 Visual Studio 才能使其生效。
在我的团队中,我们遇到了同样的问题。
您的解决方案不起作用,但Charles Sterling 的这篇文章确实有帮助。
我们使用了以下行:
caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare
在遇到此问题并花费数小时试图让“解除阻止”停留超过几分钟和/或弄清楚caspol无济于事之后,我终于通过 Google 发现了一个小消息,即下次构建时程序集将再次被阻止或重建项目,因为它们是从原始源位置重新复制的。(我想我从来没有注意到在引用程序集之前发生过这种情况,但无论如何......)
我对此的解决方法如下:
将所有需要的 DLL 复制到另一个位置以进行安全保存
删除 Visual Studio 中的引用
物理删除 bin 文件夹中的 DLL
在它们被复制的地方单独取消阻止 DLL
从保留点将引用添加回 Visual Studio
之后的每个后续构建或重建都运行良好。
在 XP 机器上运行(即使安装了 .NET 3.5 SP1)我无法让此处列出的任何其他解决方案正常工作。
然而,根据戴维兰德曼引用的查尔斯斯特林的同一篇文章,我终于成功地完成了这个变体:
在这些步骤之后,我能够运行测试,包括重新启动和重建之后。
编辑:如本答案中所述,您可能需要安装 .NET SDK(不同于 .NET 框架)才能在您的系统上安装 .NET 2.0 配置工具。
我对起订量有同样的问题。但不会“解除封锁”。每次解封还是被封了!!!?
我必须解锁我下载的原始 zip 文件。然后再次从 zip 文件中复制 DLL。在那之后它工作。
现在看起来很明显,但是当我单击取消阻止时,文件被设置为只读。
只有在取消选中该属性,应用,然后选择取消阻止之后,我才真正得到这个工作。
试一试。
:)
PS:我还删除了 bin 文件夹中的所有旧 dll,只是为了确保 Visual Studio 没有拾取旧的。
下载的 DLL 被 Vista 阻止时,我遇到了同样的问题。您需要管理员权限才能获得文件属性上的“取消阻止”按钮。我只是用我之前提交的源代码控制 (TFS) 中的最新版本替换了 DLL 。
file
Properties
Allow
我还尝试在记事本++中打开文件并重命名它。方法略有不同,但对我有用。然后本地文件系统认为它来自同一台机器。
不只是 moq.dll 需要解锁。最新的 zip 文件包括 moq.xml 和 moq.pdb 文件 - 引用 dll 也会将这两个文件复制到 bin 文件夹中。我发现,如果所有三个都没有被解除阻塞,测试将不会运行。