.Net 4.0:出现错误
尝试从网络位置加载程序集,这会导致程序集被沙盒化
应用设置
<loadFromRemoteSources enabled="true"/>
没有帮助。我怎样才能知道哪个程序集导致了问题?我该如何解决?
I have also ran into this issue, but my problem occurred because the file had been blocked since it was downloaded from an unsecured source, GMail in my case. I solved it by
In my case it was the entire .zip file that was unsafe, so I unblocked the file before I unzipped it.
我已经看到这里提到了“网络位置”并且您在本地(即不是远程)使用 DLL - 但它是从远程位置(例如 Internet 文件共享站点)复制的。
在这种情况下,我怀疑 DLL 由于流概念而被阻止,但资源管理器 UI 属性对话框没有显示“取消阻止”按钮。
为了解决这个问题,我使用了 sysinternals 工具“streams”(可在此处找到:Streams 下载),如下所示:
streams <your dll> -> view stream
streams -d <your dll> -> delete the stream data on a file
如果要针对一组文件,还有一个带有 -r 的递归选项。
我希望这对其他人有所帮助 - 这很棘手,因为 UI 没有显示它被阻止,但它显然是(可能是由于这里的其他一些安全措施)。
此解决方案还意味着您不需要调整 loadFromRemoteSources 标志,因为这是一个相当广泛的行程。
要查找有问题的程序集,请使用 fuslogvw(Windows SDK 的一部分,因此随每个 Visual Studio 一起安装)。
要解决此问题,实际上,您必须将 loadFromRemoteSources 元素添加到您的应用程序配置文件中。你确定你已经在 <runtime> 元素中添加了 loadFromRemoteSources 吗?
或者,您可以升级到 .NET 4.5,因为正如MSDN所说:
在 .NET Framework 4.5 中,本地网络共享上的程序集默认以完全信任的方式运行;您不必启用该元素
今天发生在我的一个同事身上。我发送了我们构建的软件的压缩文件,解压缩文件后,会立即抛出此异常。
7-Zip
解决方案是使用内置的 Windows zip 提取器(我假设它为提取的项目附加了一些安全属性)来解压缩文件。
如果有人在解锁时遇到问题,请尝试此操作。
我的场景是我在网络上共享一个文件夹,我将 zip 与 DLL 文件放在其中。从应该使用 dll 的服务器访问它。如果我从服务器解压缩 zip 文件,即使解除阻塞也无法工作。对我有用的是解压缩源计算机上的 zip 并复制所有文件而不是 zip 文件。我不确定它为什么会起作用。
也许我的帐户比 zip 文件的来源更受信任。