安装为Windows服务时,我的x86 Exe作为x64运行

时间:2012-09-03 13:32:21

标签: c# windows-services x86 64-bit

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

我的问题是,当我作为控制台应用程序运行时,它正确启动为x86进程,一切正常。但是,一旦我将其安装为Windows服务,它就会以x64进程启动,因此某些x86相关函数会失败。

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

谢谢, 加里

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

对于Google员工:Why would a .NET EXE, compiled as x86, run as x64?帮我解决了这个问题。

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