c# - 从本地控制台应用程序的 C++/CLI DLL 调用 C# 库时,无法授予最低权限请求

标签 c# .net c++-cli

这个问题来自 Assembly does not allow partially trusted callers when using a custom resolver

感谢该问题的解决方案,我现在能够从本地控制台应用程序调用网络共享上的 C# 库(无需更改 CasPol)

我现在需要采取下一步,即从网络上与 C# 库位于同一文件夹中的另一个混合 C++/CLI DLL 调用 C# 库。 C++/CLI DLL 将由本地控制台应用程序调用。

我正在使用上述相同的自定义处理程序(即,有证据),它在从本地控制台应用程序调用 C# 库时有效。

当从本地控制台应用程序调用 C++/CLI 库时,出现以下异常:

Could not load file or assembly 'MyCplusplusCLILib, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. Failed to grant minimum permission requests. (Exception from HRESULT: 0x80131417)

如果我完全信任网络位置,它可以正常工作,但是我不明白为什么我需要授予此信任,因为根据 3.5 SP1 中的更改,Intranet 不再需要对其应用 FullTrust(所有库都是为Visual Studio 选项中的 .NET 3.5)

最佳答案

没有获得 FullTrust 的情况列在 this blog post 的底部:

  1. 从启动 .exe 的共享子目录加载的程序集
  2. 从启动主 .exe 的共享以外的共享加载的程序集
  3. 在 LegacyMyComputer 注册表值设置为 1 的机器上加载的任何程序集
  4. 加载到 CLR 主机中的任何程序集,包括作为控件加载到 Internet Explorer 中的程序集。
  5. 从“真实”MyComputer 区域启动的应用程序从共享中加载的任何程序集。

听起来您的情况是第 5 种情况。将 .exe 复制到同一网络目录是一种解决方法。

关于c# - 从本地控制台应用程序的 C++/CLI DLL 调用 C# 库时,无法授予最低权限请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9269491/

相关文章:

c# - 找不到 System.IO.Compression 程序集

.net - IIS 5,从 .net 1.1 迁移到 .net 2.0?

.net - TCP NAT-Traversal/- 使用 .NET 打洞

c++ - 在 Windows 窗体中将 char 转换为 system.string

c# - nHibernate,将两个属性映射到同一个类

c# - 共享主机 <信任级别 ="Medium"/>

.net - 如何在 .NET 中找到路径分隔符?

c# - 使用互操作将整数数组从 C# 传递到 native 代码

.net - 为什么 Threading::Monitor::TryEnter 不止一次成功?

c# - 消息模式下的 NamedPipeClientStream 永远不会将 IsMessageComplete 设置为 true