InstallUtil.exe版本引起安装windows services 服务遇到的问题,System.BadImageFormatException

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InstallUtil.exe版本引起安装windows services 服务遇到的问题,System.BadImageFormatException相关的知识,希望对你有一定的参考价值。

原文:把程序安装成windows服务的过程及遇到的问题

做好了定时任务的程序,要把它放在服务器上,作为windows服务运行,也就是说,退出登录,用户注销后程序任然在后台运行。

将exe程序发布为服务的步骤记录如下:

场景1 :程序路径没问题的情况

 按照网上的有些说法,进入控制台,如下操作(VICTTEC_Maintain.exe就是要发布的程序):

C:\Users\Administrator>C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe  C:\maintain\VICTTEC_Maintain.exe

报错:

在初始化安装时发生异常:
System.BadImageFormatException: 未能加载文件或程序集“file:///C:\maintain\VICTTEC_Maintain.exe”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程

 

问题在哪里呢?根据报错信息来看完全没有头绪,经过一段时间的思考,想到会不会是InstallUtil.exe这个程序的版本问题呢?于是换个思路,离开v2.0.50727这个文件夹,进入

v4.0.30319这个版本的目录,再次运行命令,OK,成功

技术分享图片  技术分享图片

 

场景2:程序路径本身有问题的情况

C:\Users\Administrator>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe    C:\Users\Administrator\Documents\Visual Studio 2010Projects\VICTTEC_Maintain\VICTTEC_Maintain\bin\Debug\VICTTEC_Maintain.exe

报错:

Microsoft(R) .NET Framework 安装实用工具版本 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
在初始化安装时发生异常:
System.IO.FileNotFoundException: 未能加载文件或程序集“file:///C:\Users\Administrator\Documents\Visual”或它的某一个依赖项。系统找不到指定的文件。。

这个错误乍一看也是完全没有头绪,思考了很久,还是从报错信息入手,发现报错信息里提示的目录不完整,到"\Visual"就停止了,而实际的目录是\Visual Studio,

于是乎,猜测是不是路径名称中的空格导致了报错,于是将exe文件转移出来,放在c:\maintain 目录下,也就是确保路径名称没有空格,再次尝试,OK,成功。

 

总结: windows中很多系统自带的程序也并不完美,也会有一些小问题,要经常更换角度观察问题,总会有解决的办法。

 

 

以上是关于InstallUtil.exe版本引起安装windows services 服务遇到的问题,System.BadImageFormatException的主要内容,如果未能解决你的问题,请参考以下文章

通过cmd 使用 InstallUtil.exe 命令 操作 windows服务 Windows Service

使用 SC.exe 或 InstallUtil.exe 安装 Windows 服务 - 有区别,但哪个?

安装windows系统的installutil

如何强制卸载windows服务

批处理安装Windows服务,提示"InstallUtil.exe"不是内部命令也不是外部命令解决方式

无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorerWindows服务器管理工具或NET START命令启动它(示例