什么决定了面向"AnyCpu"平台的 .NET 应用是以 32 位还是 64 位运行?



我有一个.NET解决方案,里面有几个.NET Framework项目,其中两个生成可执行文件(一个是Windows服务,另一个是WPF应用程序(。

这两个项目都以";任何CPU";平台,并且不具有";优选32位";标志在生成选项中打开。

然而,我通过任务管理器注意到,虽然WPF应用程序默认以64位模式启动,但服务却以32位模式启动。

我的问题是:为什么会有区别?是什么决定了不以特定平台为目标的.NET可执行文件是以32位模式还是64位模式启动?是因为它是专门的Windows服务吗?

编辑:重新打开,因为链接假定";重复";这个问题并没有真正解释为什么服务会在64位机器上以32位模式启动。

感谢@conton7为我指明了正确的方向。

事实证明;优选32位";即使我在visualstudio中禁用了flag,它仍然是活动的。可能是缓存问题,我关闭了visualstudio,删除了bin文件夹,重新打开并重建了解决方案,服务现在以64位模式正确启动。

相关内容