当前位置:  开发笔记 > 后端 > 正文

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

如何解决《MSTest运行失败,因为源程序集不受信任》经验,为你挑选了4个好方法。

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

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

Jedidja.. 98

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

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

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



1> Jedidja..:

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

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

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


谢谢!执行此操作后,我不得不重新启动Visual Studio以使测试正常运行.

2> Davy Landman..:

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

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

我们使用以下行:

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


@Bert Huijben,这是正确的(http://stackoverflow.com/questions/148879/why-does-my-net-application-crash-when-run-from-a-network-drive/).但是即使在3.5SP1之后我们仍然遇到问题,但只有当通过MSTest运行时才会显示错误,只运行应用程序,没有问题.

3> 小智..:

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

我对此的解决方法如下:

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

    删除Visual Studio中的引用

    物理删除bin文件夹中的DLL

    在复制它们的位置单独解锁DLL

    从保留点在Visual Studio中添加引用

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



4> Eric..:

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

然而,在戴维·兰德曼引用的查尔斯·斯特林的同一篇文章中,我终于成功了这个变化:

    运行.NET 2.0配置工具(设置...控制面板...管理工具... .NET Framework 2.0配置)

    单击"我的电脑...运行时安全策略...机器......代码组... All_Code"

    创建一个成员条件为"Zone"="Local Intranet"的新代码组,并分配权限集"FullTrust"

    重新启动Visual Studio

完成这些步骤后,我可以运行测试,包括重启和重建后.

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

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有