Jef*_*ron 2 .net c# assemblies 32bit-64bit
我的程序(控制台应用程序)引用了其他几个程序集(许多开源库).我使用"Any CPU"选项集(使用VS2008)构建了程序集.当我从Windows Server 2008 x64计算机上的64位命令提示符启动程序集时,该过程始终以32位进程启动!
我查看了我的引用,看起来好像我有一个引用的32位程序集的引用.这个单引用会导致整个程序集以32位开始吗?
此外,我使用ILMerge将所有引用的程序集合并到一个程序集中.也许这与它有关?
有人可以帮我弄清楚这里发生了什么吗?
如果需要加载32位组件,整个过程需要为32位.您可以为主应用程序定位"任何CPU",但它将运行64位,并在尝试加载32位程序集时在运行时失败.
如果你有一个x86程序集作为合并的一部分,ILMerge足够聪明,可以将主条目程序集从AnyCPU切换到x86,以防止出现问题.
如果你想运行64位 - 你需要让所有程序集都是64位或AnyCPU.