我有一个服务器控制台应用程序,如果您指定/ CONSOLE命令行,我将其设计为作为控制台应用程序运行,但同时允许使用InstallUtil将其自身安装为Windows服务。
我的问题是,当我作为控制台应用程序运行时,它正确启动为x86进程,一切正常。但是,一旦我将其安装为Windows服务,它就会以x64进程启动,因此某些x86相关函数会失败。
我的项目配置设置为x86,所有引用的组件都设置为x86。实际项目本身的配置设置为x86,目标设置为x86。有没有其他人对可能导致这种情况的原因有什么建议?
谢谢, 加里
答案 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)
。