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中很多系统自带的程序也并不完美,也会有一些小问题,要经常更换角度观察问题,总会有解决的办法。

原文地址:https://www.cnblogs.com/lonelyxmas/p/8542299.html

时间: 2024-08-28 02:13:18

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

C#开发Windows Services服务--服务安装失败的解决办法

问题1:“System.Security.SecurityException:未找到源,但未能搜索某些或全部事件日志.不可访问的日志: Security.” 正在运行事务处理安装. 正在开始安装的“安装”阶段. 查看日志文件的内容以获得…\bin\Debug\Service2.exe程序集的进度. 该文件位于…\bin\Debug\Service2.InstallLog. 在“安装”阶段发生异常. System.Security.SecurityException:未找到源,但未能搜索某些或全部

C# windows服务:通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)

步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft.NET/Framework/v2.0.50727里面,所以你要在cmd里通过cd定位到该位置(cd C:/Windows/Microsoft.NET/Framework/v2.0.50727) 3.操作命令: 1). 安装服务命令:在命令行里输入下面的命令: InstallUtil.exe  Pa

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

要安装windows service 首先要找到 InstallUtil.exe,InstallUtil.exe位置在 C:\Windows\Microsoft.NET\Framework\v4.0.30319,用什么版本写的服务,找到对应版本,各个版本不同详见(C:\Windows\Microsoft.NET\Framework\版本) 然后使用命令 安装服务 InstallUtil.exe  服务路径/windowsServiceName.exe 快捷安装:直接找到对应的 installut

通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)

步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft.NET/Framework/v2.0.50727里面,所以你要在cmd里通过cd定位到该位置(cd C:/Windows/Microsoft.NET/Framework/v2.0.50727) 3.操作命令: 1). 安装服务命令:在命令行里输入下面的命令: InstallUtil.exe  Pa

通过cmd命令安装、卸载、启动和停止Windows Service(InstallUtil.exe)-大壮他哥

步骤: 1.运行--〉cmd:打开cmd命令框 2.在命令行里定位到InstallUtil.exe所在的位置 InstallUtil.exe 默认的安装位置是在C:/Windows/Microsoft.NET/Framework/v2.0.50727里面,所以你要在cmd里通过cd定位到该位置(cd C:/Windows/Microsoft.NET/Framework/v2.0.50727) 3.操作命令: 1). 安装服务命令:在命令行里输入下面的命令: InstallUtil.exe  Pa

虚拟化基础架构Windows 2008篇之5-安装Windows部署服务

看完文章,请顺手投我一票(王春海),谢谢 http://edu.51cto.com/activityvote/voteRanking 京东6.18结束了,IT人自己的6.18来了!!!51CTO学院3周年(6月30日-7月1日)70000课程不止5折!http://edu.51cto.com/lecturer/user_id-225186.html 在组建云计算数据中心时,会经常安装操作系统.无论是云计算的基础平台Hyper-V Server 2008 R2.Hyper-V Server 201

Windows部署服务(WDS)

一.安装Windows部署服务(WDS) 1.选择"开始-程序-管理工具-服务器管理器",打开"服务器管理器"控制台,选择"角色"选项,单击"添加角色"链接,运行"添加角色向导 2.在"选择服务器角色"对话框中,选中"windows 部署服务"复选框,如图1-1 图1-1选择服务角色 3.在"选择角色服务"对话框中,选中"部署服务器"复选

不用制作启动盘安装Windows操作系统的最简单办法

网上流传和被熟知的重装Windows操作系统的办法的前几个步骤通常要制作U盘启动盘或光盘启动盘,在重启计算后全新安装操作系统.这对于没有U盘或者光盘.没有光驱又想全新安装Windows操作系统(也就是不想在启动Windows后,再安装)的用户来说比较麻烦,因此本文提供一种不需要用制作启动盘安装Windows操作系统的最简单办法. 本方法适用于以下情况的一种或多种: 1.没有U盘或USB接口的移动硬盘 2.没有光盘或者光驱 3.有光盘但光驱不支持刻录 4.U盘或USB移动硬盘无法启动或者无法做成启

Mysql安装后没有服务

你安装了mysql没有,没有就先安装,安装好mysql以后,在bin目录下有个mysqld.exe,运行这个程序就可以添加mysql服务,但是运行这个程序需要使用参数,否则就会以命令行窗口形式启动MYSQL数据库,命令参数如下: 安装服务(MySQL)的命令:mysqld.exe --install 可以指定服务的名字,例如:mysqld.exe --install MySQL5 以上命令安装的服务是开机自动运行,如果开机不自动启动,那么参数如下:mysqld.exe --install-man