2

我有一个服务器控制台应用程序,如果您指定 /CONSOLE 命令行,我将其设计为作为控制台应用程序运行,但同时允许使用 InstallUtil 将其自身安装为 Windows 服务。

我的问题是当我作为控制台应用程序运行时,它作为 x86 进程正确启动并且一切正常。但是,一旦我将它安装为 Windows 服务,它就会作为 x64 进程启动,因此某些依赖 x86 的功能会失败。

我的项目配置设置为 x86,并且所有引用的组件都设置为构建为 x86。实际项目本身的配置设置为 x86,目标设置为 x86。有没有其他人对可能导致这种情况的原因提出建议?

谢谢,加里

4

2 回答 2

1

确保您使用的是正确版本 (X86) 的 InstallUtil。有关x86 和 x64 版本之间差异的说明,请参见此处。

于 2012-09-03T13:36:57.020 回答
0

对于 Google 员工:为什么编译为 x86 的 .NET EXE 会以 x64 运行?帮我解决了这样的问题。

此外,您可以使用dumpbin /headers program.exe它来查看标题中的内容。寻找14c machine (x86)8664 machine (x64)

于 2013-10-07T12:53:38.660 回答