gpt4 book ai didi

c# - 单个 x86 构建的程序集导致整个程序集作为 32 位执行

转载 作者:行者123 更新时间:2023-12-03 20:30:07 25 4
gpt4 key购买 nike

我的程序(控制台应用程序)引用了几个其他程序集(许多开源库)。我使用“Any CPU”选项集(使用 VS2008)构建了程序集。当我在 Windows Server 2008 x64 计算机上从 64 位命令提示符启动程序集时,该进程始终作为 32 位进程启动!

我查看了我的引用资料,似乎我有一个引用的 32 位程序集的引用资料。这个单一引用是否会导致整个程序集以 32 位启动?

此外,我使用 ILMerge 将所有引用的程序集合并到一个程序集中。也许这有什么关系?

有人可以帮我弄清楚这里发生了什么吗?

最佳答案

如果您需要加载32位程序集,则整个过程将需要是32位的。您可以将“任何 CPU”作为主应用程序的目标,但它将运行 64 位,并在运行时尝试加载 32 位程序集时失败。

如果您有 x86 程序集作为合并的一部分,ILMerge 足够智能,可以将主入口程序集从 AnyCPU 切换到 x86,以防止出现问题。

如果您想运行 64 位 - 您需要让所有程序集都是 64 位或 AnyCPU。

关于c# - 单个 x86 构建的程序集导致整个程序集作为 32 位执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com