我有引用第三方库的源代码,我没有一个控制台应用程序:.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' 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.
我尝试了C# - .NET 4.0 - That Assembly does not allow partially trusted callers的解决方案 1)使用SN.EXE创建密钥 2)用此密钥签署我的所有程序集。
之后,编译器抱怨说第三方库没有强名称。
有人会提出一个解决方案吗?我没有直接控制客户端机器,所以我更喜欢不需要客户机配置的解决方案(例如CASPOL.EXE)。
UPDATE_1
我加<NetFx40_LegacySecurityPolicy enabled="true" />
到的app.config。它传递了第一个SecurityException,但在稍后的时间点因相同的错误而死亡。
谢谢。
目标框架版本的这些库是.NET 2.0。我需要将其更改为.NET 4吗?谢谢! – 2012-03-20 13:18:21
我试图编译所有第三方依赖项。不幸的是其中一个库修改了它的依赖关系的来源。我无法访问修改后的源代码。我想我已经达到了死亡。 – 2012-03-20 14:07:08
我创建了一个测试项目,仅编译记录消息的Common.Logging,NLog和EXE项目。 Common.Logging的目标框架是2.0,NLog的是4.我用一个密钥签署了所有项目。将添加到App.config。该程序仍然会抛出“该程序集不允许部分受信任的调用者。” –
2012-03-21 16:07:32