我有一个内置于 32 位和 64 位的共享 dll。两个版本都使用相同的名称 foo.dll。如何在系统上同时安装 foo.dll,以便我的 32 位和 64 位应用程序在其路径中找到正确的 dll。
Windows 本身使用 SysWOW64(用于 32 位 dll)和 System32(用于 64 位 dll)。我想避免部署到这些文件夹。让两个位的 dll 在同一个盒子上共存并被链接到它们的适当应用程序找到的公认方式(如果有的话)是什么?
最佳答案
如果您不部署到受文件重定向影响的文件夹(即 system32),那么您几乎需要为 DLL 指定不同的名称。这样做的原因是 DLL 搜索路径在 32 位和 64 位进程之间共享,如果您依赖搜索路径来定位 DLL,这会迫使您使用不同的名称。
请注意,我排除了任何依赖 SxS 版本控制的解决方案。尝试走这条路会给任何试图使用您的 DLL 的人带来各种并发症和麻烦。
关于windows - 同一系统上的 64 位和 32 位非托管 dll - 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7650534/