目前我正在创建一个MSI,用于在x64系统上安装我的.net编写的(C#)软件。这是必要的,因为我生成了一些注册表项,我不想以编程方式决定我必须指向哪个注册表路径(避免使用WOW6432节点)。
在此期间,我问自己,是否有必要为x64系统明确编译我的软件(Run-Configuration" x64")。目前,我总是使用"任何CPU"在Visual Studio平台不可知的情况下编译我的软件。在我的源代码中,我没有区分x64和x86。
CIL代码是由JIT编译器编译的,所以我认为它会在运行时显式地将其编译为64位,或者我错了吗?
Visual Studio中显式" x64" -compiling和平台无关编译之间有什么区别? 如何影响x64-flag的编译?
答案 0 :(得分:2)
如果您的程序(使用任何CPU)在64位平台上启动,它将以64位模式启动。这通常可以很好地工作 - 例外情况是,如果您的程序依赖于只有32位版本可用的本机库。当调用它时,它将无法加载该库(因此任何问题都可能不会立即显现)。
也可以在运行时使用标志强制使用32位模式。