把exe程序安装成windows服务失败,报错System.BadImageFormatException 该模块应包含一个程序集清单,如何解决?

把exe程序安装成windows服务失败,报错 System.BadImageFormatException 该模块应包含一个程序集清单

cmd管理员执行 C:\Windows\Microsoft.NET\Frameworks(或64)\对应版本的InstallUtil.exe "要安装的服务exe路径"
报错截图如下

img

因为是第三方的exe,不知道是什么版本的,但是不管平台是x86还是x64,还有Frameworks版本v2 v4都试过了,都报这个错。版本应该是没问题的,我电脑只装了这两个,用第三方的安装器都能正常安装服务,但是我想手动去安装就不得行。

我想可能是少什么文件,但是安装器安装时并没有任何文件增减的变动。

这个报错也没提示少什么文件,现在真不知道怎么办了,能试的都试过了。

问题解决了,使用nssm安装,再在注册表修改可执行文件的路径就行了

img


奇怪的是路径不对的项是ImagePath,不是Paremeters里的Application,不过不管是哪个项,只要看到路径不对的都改掉就行了

一种可能的解决办法是:

检查exe程序是否为.NET Framework编写,如果不是则无法通过InstallUtil.exe安装为服务。

检查exe程序是否包含程序集清单。可以使用ILSpy工具查看程序内部结构,确认是否有程序集清单。

如果exe程序是.NET Framework编写的,但没有程序集清单,则可以使用.NET Reflector工具将其转换为.NET程序集。

如果以上方法均无效,则可以尝试通过其他方法安装服务,例如使用sc.exe命令或自定义安装程序。