【发布时间】:2014-06-06 14:05:50
【问题描述】:
我有一个本地 DLL,它有 32 位和 64 位版本 (x86)。我想创建一个适用于两种架构(任何 CPU)的包装器,并根据当前环境(32 位或 64 位,在运行时!)加载正确版本的 DLL。这个过程应该自动发生,因此我的 DLL 的用户不需要针对特定的体系结构。
有没有关于如何做到这一点的最佳做法?有什么可以指导我的例子吗?
我找到了一种可能的解决方案,它为每个架构使用托管代理,然后使用Assembly.Resolve 事件加载正确的版本。但是,这需要我除了 2 个非托管库之外还有 3 个托管程序集,这似乎有点矫枉过正。
还有其他解决办法吗?
【问题讨论】:
-
scottbilas.com/blog/… 希望对您有所帮助。