.net 4.0 .NET 4.0第三方库导致;该程序集不允许部分受信任的调用者“;
我有一个控制台应用程序,它引用了我没有的第三方库的源代码: 1) Common.Logging.NLog,2)Common.Logging,3)NLog 将安全选项切换到“这是一个部分信任的应用程序”(部署在网络共享驱动器中)后,VS发出了4个警告:.net 4.0 .NET 4.0第三方库导致;该程序集不允许部分受信任的调用者“;,.net-4.0,.net 4.0,我有一个控制台应用程序,它引用了我没有的第三方库的源代码: 1) Common.Logging.NLog,2)Common.Logging,3)NLog 将安全选项切换到“这是一个部分信任的应用程序”(部署在网络共享驱动器中)后,VS发出了4个警告: Warning 1 Reference 'Common.Logging.NLog' does not allow partially trusted callers. Warning 2 Reference 'Common.Logging'
Warning 1 Reference 'Common.Logging.NLog' does not allow partially trusted callers.
Warning 2 Reference 'Common.Logging' does not allow partially trusted callers.
Warning 3 Reference 'NLog' does not allow partially trusted callers.
Warning 4 Use of app.config binding redirects requires full trust.
我试了一下这个解决办法
1) 使用SN.EXE创建密钥
2) 使用此密钥对我的所有程序集进行签名
之后,编译器抱怨第三方库没有强名称
有人能提出解决方案吗?我不能直接控制客户机,所以我更喜欢不需要客户机配置的解决方案(例如CASPOL.EXE)
更新1
我在app.config中添加了
。它通过了第一个SecurityException,但后来由于相同的错误而死亡
谢谢。您可能很幸运——这三个程序集都是有效的,因此您可以自己编译它们,并使用您选择的强名称键进行签名。指向项目源存储库页面的链接包括:
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
这些库的目标框架版本是.NET2.0。我需要把它改成.NET4吗?谢谢!我试图编译所有第三方依赖项。不幸的是,其中一个库修改了其依赖项的源。我找不到修改过的源代码。我想我已经到了死胡同。我创建了一个只编译Common.Logging、NLog和一个记录消息的EXE项目的测试项目。Common.Logging的目标框架是2.0,NLog的目标框架是4。我用一把钥匙签署了所有项目。已添加到App.config。程序仍然抛出“该程序集不允许部分受信任的调用者”