不允许从网络位置加载程序集

时间:2015-02-05 08:13:48

标签: .net visual-studio visual-studio-2012 .net-4.5 .net-assembly

我最近设置了一个新的 Windows Server 2012 R2 环境并安装了 Visual Studio 2012

现在我遇到了多个 .NET 4.5 项目的问题,我从旧服务器(Windows Server 2008计算机)迁移了。这从未发生在旧服务器上。

尝试从网络位置加载程序集时,遇到以下问题:

  

尝试从网络位置加载程序集,这会导致程序集在以前版本的.NET Framework中被沙箱化。此版本的.NET Framework默认情况下不启用CAS策略,因此此负载可能很危险。如果此负载不是用于沙盒装配,请启用loadFromRemoteSources开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569

looked at some other questions,但没有一个提供有效的解决方案。

这是我到目前为止所尝试的:

  • loadFromRemoteSources切换添加到 devenv.config XDesProc.exe.appx.config XDesProc.exe.config
  • 检查程序集是否为 blocked ,而不是。
  • 尝试使用 CasPol 实用程序,即使这仅适用于.NET 4.0之前的项目。

一切都没有成功。

还有其他解决方案可以解决这个问题吗?

2 个答案:

答案 0 :(得分:28)

loadFromRemoteSources switch添加到 machine.config 解决了这个问题。

<强> MSDN

  

loadFromRemoteSources元素指定是否应授予来自远程源的程序集完全信任。

示例

<configuration>
    <runtime>
       <loadFromRemoteSources enabled="true"/>
   </runtime>
</configuration>

您可以找到 machine.config here

<强> 32位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

<强> 64位

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config

答案 1 :(得分:2)

当尝试将DLL加载到来自Internet的ZIP的本地驱动器上时,我遇到了同样的问题。 解决方案是在其文件属性中解锁 ZIP。最后,再次提取DLL,现在可以正确加载它了。无需更改machine.config。