我已经将 Windows 服务构建为“任何 CPU”。但是,当我在 64 位机器上运行它时,它以 32 位运行。我该如何解决?我正在使用 .NET 和 C#,我的操作系统是 Windows 2008 R2。
如果我在 x64 中构建它,它会在 64 位模式下正确加载。然而,“Any Cpu”——这是我想要的——以 32 位加载,即使它运行的机器完全支持 64 位。
编辑以根据反馈添加更多信息
我们确实有第三方工具以及参考 c++ 托管程序集。这些可能是也可能不是为任何 CPU 构建的。事实上,我知道 C++ 托管程序集仅适用于 x86。然而,奇怪的是,如果我特别指定 x64,该进程将启动并在 x64 中工作。如果框架试图加载 c++ 托管程序集,它将失败。我不介意这一点,因为在代码中,如果我们在 64 位模式下运行,我们不会加载 32 位托管 ++ 程序集。是不是因为这里有一个 32 位程序集,它应该将启动过程(在本例中为 Windows 服务程序集)标记为 x86?