5

我们有一个包含许多不同库的大型解决方案。我们刚刚迁移到 64 位系统上的开发,这让我们思考应该为解决方案中的每个单独项目指定什么平台目标。

目前,我们只有一个引用 32 位 DLL 文件的库项目。我们引用了这个 DLL 文件的一个互操作,但是当我们将 x86 定位为这个项目的平台,同时将解决方案中的其余项目保留为“任何 CPU”时,我们收到一个错误。

我的问题是,除了引用 32 位互操作的项目之外,我们可以在所有项目上针对任何 CPU 吗?或者应该只为 x86 构建所有内容,因为这似乎可以正常工作而没有任何错误。

4

2 回答 2

3

是的。

除一个外的所有 DLL 都可以是 AnyCPU。

只需确保将进程设为 x86,所有 DLL 将加载为 32 位。

你得到什么错误?添加错误消息可能会导致更有帮助的答案。

于 2010-11-04T02:21:30.847 回答
1

我认为如果您的所有 dll 都是 anyCpu,那么您的 .exe 可以是 x64 或 x86。但是,如果您的 exe 是 x64 或 x86,则您的 .dll 不能是另一个。此外,如果您的 .exe 是 AnyCPU,我相信它将以机器本机的任何模式加载。这意味着您的 dll 要么是 anyCpu 要么是系统的本机模式。

于 2010-11-04T02:19:08.407 回答