我们有几个项目使用p4.net,一个托管 DLL,它又依赖于 p4dn.dll,一个 32 位非托管 DLL。这在 x64 系统上存在问题,所以我不得不去每个使用 p4.net 的项目并将其处理器类型设置为 x86。
如果我理解正确的问题,那就是当 .NET 加载一个 exe 时,它会检查清单,如果没有,它会做最适合处理器类型的任何事情。然后,当它运行到 32 位 dll 时,它会呕吐。
我可以去每个使用 p4.net 的项目并将其标记为 32 位。但是我们有很多这样的。此外,人们将继续制作新的并忘记设置 32 位,然后当其他人尝试在 x64 上使用它时,我们将再次遇到此问题。
我的问题是:有没有办法让 .NET 自动加载任何使用 p4dn.dll 作为 32 位的应用程序?如果做不到这一点,IDE 有没有办法检测到这一点并且无法构建?
或者是否可以制作一个我可以放在 p4api 或 p4dn.dll 旁边的 .manifest 文件,以便使用它们的任何应用程序将自动以 32 位运行?