InstallUtil.exe的使用
最近在項目中使用到了Windows服務,之前對這一塊兒不是很了解,經過這個項目對Windows服務有所了解,下面主要講解一下Windows服務的安裝和卸載。
安裝和卸載主要使用的是.NET提供的InstallUtil.exe這個文件,下面是使用InstallUtil.exe這個文件的一些常用參數:

可以看到,卸載使用的是-u參數。
安裝一個Windows服務的命令:
InstallUtil.exe E:\PGSApp\PGS.DeadQRecover.Service.Installer\PGS.DeadQRecover.Service.exe
卸載一個Windows服務的命令:
InstallUtil.exe -u E:\PGSApp\PGS.DeadQRecover.Service.Installer\PGS.DeadQRecover.Service.exe
當時項目的任務是把一個APP從.NET 2.0升級到.NET 4.0,可是在卸載和安裝的時候均出現了如下錯誤:

后來經過一番研究才發現問題所在:Windows服務的安裝和卸載需要嚴格的檢測InstallUtil.exe 的版本。如下面的表格所示,我的電腦是64位機,安裝了.NET 2.0和.NET 4.0,於是InstallUtil.exe有如下四個版本:
|
|
Framework |
Framework64 |
| v2.0.50727 |
|
|
| v4.0.30319 |
|
|
就是說,你安裝的時候使用的是Framework & v2.0.50727,你卸載的時候使用Framework& v4.0.30319 可能就會報錯,不同的Framework版本和不同的.NET版本都會導致此錯誤。
所以,我這次升級.NET 版本正確的命令應該如下:
安裝:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727>
InstallUtil.exe -u E:\PGSApp\PGS.DeadQRecover.Service.Installer\PGS.DeadQRecover.Service.exe
卸載:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>
InstallUtil.exe E:\PGSApp\PGS.DeadQRecover.Service.Installer\PGS.DeadQRecover.Service.exe
最后,還有就是要學會看Windows Event Viewer,通過這里可以找到此次安裝Windows服務發生的錯誤,進行分析,然后找到問題所在。

自己也是正在學習中,希望能夠和大家一起分享,一起進步。
