62

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

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

4

10 回答 10

98

我花了几次尝试在谷歌中找到答案,所以我把它放在这里以防其他人遇到同样的问题。可以在此博客文章中找到详细说明。

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

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

于 2008-10-14T14:17:43.943 回答
17

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

您的解决方案不起作用,但Charles Sterling 的这篇文章确实有帮助。

我们使用了以下行:

caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare
于 2008-12-04T12:04:56.953 回答
10

在遇到此问题并花费数小时试图让“解除阻止”停留超过几分钟和/或弄清楚caspol无济于事之后,我终于通过 Google 发现了一个小消息,即下次构建时程序集将再次被阻止或重建项目,因为它们是从原始源位置重新复制的。(我想我从来没有注意到在引用程序集之前发生过这种情况,但无论如何......)

我对此的解决方法如下:

  1. 将所有需要的 DLL 复制到另一个位置以进行安全保存

  2. 删除 Visual Studio 中的引用

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

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

  5. 从保留点将引用添加回 Visual Studio

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

于 2009-02-11T20:59:44.903 回答
8

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

然而,根据戴维兰德曼引用的查尔斯斯特林的同一篇文章,我终于成功地完成了这个变体:

  1. 运行 .NET 2.0 配置工具(设置...控制面板...管理工具....NET Framework 2.0 配置)
  2. 单击“我的电脑...运行时安全策略...机器...代码组...All_Code”
  3. 创建成员条件为“Zone”="Local Intranet" 的新代码组并分配权限集“FullTrust”
  4. 重新启动 Visual Studio

在这些步骤之后,我能够运行测试,包括重新启动和重建之后。

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

于 2009-12-17T21:06:38.260 回答
4

我对起订量有同样的问题。但不会“解除封锁”。每次解封还是被封了!!!?

我必须解锁我下载的原始 zip 文件。然后再次从 zip 文件中复制 DLL。在那之后它工作。

于 2010-06-29T03:48:58.233 回答
3

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

只有在取消选中该属性,应用,然后选择取消阻止之后,我才真正得到这个工作。

试一试。

:)

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

于 2011-02-20T11:11:20.810 回答
1

下载的 DLL 被 Vista 阻止时,我遇到了同样的问题。您需要管理员权限才能获得文件属性上的“取消阻止”按钮。我只是用我之前提交的源代码控制 (TFS) 中的最新版本替换了 DLL 。

于 2009-07-30T12:58:58.247 回答
1
  • file
  • 右键单击并选择Properties
  • 在第一个注册点击Allow
于 2012-09-19T15:39:53.650 回答
0

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

于 2010-11-12T12:53:44.783 回答
0

不只是 moq.dll 需要解锁。最新的 zip 文件包括 moq.xml 和 moq.pdb 文件 - 引用 dll 也会将这两个文件复制到 bin 文件夹中。我发现,如果所有三个都没有被解除阻塞,测试将不会运行。

于 2011-08-24T10:52:15.500 回答