gpt4 book ai didi

.net - 如何从同一个 EXE 应用程序引用 x86 和任何 CPU 程序集?

转载 作者:行者123 更新时间:2023-12-03 02:54:51 25 4
gpt4 key购买 nike

我有两个第 3 方集会。一种是针对 x86 目标编译的,另一种是针对任何 CPU 编译的。有没有办法在同一个应用程序中使用它们。

现在我的应用程序已成功编译但无法运行。我尝试为 x86 和任何 CPU 构建 EXE 文件,但没有成功。我可以使用 corflags 来更改目标平台位,但程序集已签名,我不想更改它们的签名。

有人可以帮忙吗?

最佳答案

您可以引用它们 - 但只有当条目 .exe 程序集设置为 x86 或设置为任何 CPU 并在 x86 计算机上运行时,应用程序才会运行。对于 IIS 托管的进程,位数由 IIS 本身决定。

举例来说 - 我刚刚创建了这个 vs2010 解决方案:https://docs.google.com/open?id=0Bw_NnV9fhgmgSGxGOEZXSnVsd1k

控制台应用程序可以是 x86/任何 APU,并引用两个库 - 一个是 x86,另一个是任何 CPU。

如果您将 exe 设置为 x86 并在 x64 上运行它,那么它可以正常工作(显然它可以在 x86 上运行没有问题)。但是,如果您将 exe 设置为“任何 CPU”并在 x64 上运行它,它将崩溃(并出现 BadImageFormatException)。同样,在 x86 上运行它仍然可以工作。

入口程序集的风格决定了进程的位数;因此可以加载任何程序集的预期位数。

就您而言,您关注的程序集可能不一定是问题所在 - 而是它们引用的程序集。异常可能会告诉您更多信息。

关于.net - 如何从同一个 EXE 应用程序引用 x86 和任何 CPU 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10780972/

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