如何从同一个EXE应用程序引用x86和ANY CPU程序集?

vya*_*hir 3 .net .net-assembly target-platform

我有两个第三方集会.一个用于x86目标,另一个用于任何CPU.有没有办法在同一个应用程序中使用它们.

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

有人可以帮忙吗?

And*_*tan 9

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

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

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

如果你将exe设置为x86并在x64上运行它然后它工作正常(显然它适用于x86没有问题).但是,如果将exe设置为Any CPU并在x64上运行它将崩溃(使用a BadImageFormatException).再次,在x86上运行它仍然有效.

入口组件的味道决定了过程的重要性; 因此可以加载的任何组件的预期位数.

在你的情况下,你所关注的程序集可能不一定是问题 - 它们引用的是程序集.例外可能会告诉你更多.