我正在尝试通过以下方式加载程序集:
Assembly component = Assembly.LoadFrom(componentPath);
其中componentPath
是网络位置的完整路径,并收到以下错误:
尝试从网络位置加载程序集,这会导致程序集在以前版本的.NET Framework中被沙箱化。
此版本的.NET Framework默认情况下不启用CAS策略,因此此负载可能很危险。
如果此加载不是用于沙盒装配,请启用loadFromRemoteSources开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569。
请您解释一下我应该怎么做以避免这种安全检查?
谢谢
答案 0 :(得分:14)
我遇到了同样的问题。原因是Windows阻止了Assembly文件。我通过右键单击Assembly文件并选择属性来解决它。在“属性”对话框中,单击“常规”选项卡下的取消阻止按钮,然后单击应用,然后单击确定。
答案 1 :(得分:7)
阅读Best Practices for Assembly Loading以获得一个想法 另请阅读有关.NET安全性的msdn博客
答案 2 :(得分:6)
除了Furqan Safdar's answer之外,另一个选择是在配置文件中添加此标记:
<configuration>
<runtime>
<loadFromRemoteSources enabled="true"/>
</runtime>
</configuration>
希望这些链接有所帮助:
http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx