1. 程式人生 > >InstallUtil.exe版本引起安裝windows services 服務遇到的問題,System.BadImageFormatException

InstallUtil.exe版本引起安裝windows services 服務遇到的問題,System.BadImageFormatException

article 實用 tor edit user 提示 程序 更換 運行時

原文:把程序安裝成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