【问题标题】:Different platform AppDomains in one .Net process?一个.Net进程中的不同平台AppDomains?
【发布时间】:2010-11-15 16:14:36
【问题描述】:

我很感兴趣:我可以将 32 位 x86 dll 作为第二个 AppDomain 加载到 64 位应用程序环境中吗?

更多详情:

1) 主 exe 是 64 位 C# 纯 .net 4 应用程序;

2) 模块是一些非托管 x86 dll 的第三方 .net 2.0 包装器;

那么我可以在 64 位 .net 4 进程中创建第二个 32 位 AppDomain 并将 32 位模块加载到新创建的 32 位 AppDomain 中吗?然后在默认的 64 位 AppDomain 和第二个 32 位 AppDomain 之间编组?

感谢您的建议!

【问题讨论】:

  • 当你尝试它会发生什么?
  • 异常 System.BadImageFormatException 发生在 kernelbase.dll ;)

标签: .net dll x86 64-bit appdomain


【解决方案1】:

这是不可能的,bitness 是一个进程属性,而不是 appdomain 属性。要完成这项工作,您需要在单独的进程中加载​​该 DLL。使用标准的 .NET IPC 机制与之对话。命名管道、套接字、远程处理、WCF。或者强制平台目标设置为 x86。

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2023-04-02
    • 2014-05-10
    相关资源
    最近更新 更多