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