Dot-Net

用於安裝或解除安裝 .NET Windows 服務的批處理腳本

  • February 24, 2009

我沒有編寫批處理腳本的經驗,但我想知道是否有辦法installutil.exe使用這樣的腳本安裝 .NET Windows 服務,或者如果已經安裝了該服務,則解除安裝該服務,理想情況下,我確實會進行某種確認喜歡執行解除安裝(例如按 y 解除安裝)。

以下是一些細節:

  • 服務的 .exe 位於C:\Program Files\Data Service目錄中
  • 該腳本應與服務的 .exe 位於同一目錄中
  • 安裝服務後,最好在日誌文件中添加一個簡單的行(我們將呼叫它program.log,也在此目錄中)
  • 機器正在執行 Windows Server 2003,預設目錄中安裝了 .NET FrameworkC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

如果您覺得這可以以更好的方式完成,那麼很高興聽到其他建議。我總是可以編寫服務安裝程序,但這不是優先事項。

您可以使用命令行參數(-i -u 等)設置您的服務 exe 以支持自我註冊/註銷,而不是編寫批處理文件來做同樣的事情。

有關在 .NET 中創建自安裝服務的資訊

<http://anotherlab.rajapet.net/2006/06/self-installing-services-in-net.html>

<http://www.gotnet.biz/WindowsServiceSelfInstaller.ashx>

此外,將安裝項目添加到您的解決方案並讓 Visual Studio 建構安裝包可能會更快。

如何在 Visual Basic .NET 或 Visual Basic 2005 中為 Windows 服務創建安裝項目

(VB) <http://support.microsoft.com/kb/317421>

(C#) <http://support.microsoft.com/kb/816169>

這是我用來安裝的批處理文件。

@ECHO OFF

REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo Installing MyService...
echo ---------------------------------------------------
InstallUtil /i MyService.exe
echo ---------------------------------------------------
echo Done.
pause

要解除安裝我使用了以下內容:

@ECHO OFF

REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%

echo Uninstalling MyService...
echo ---------------------------------------------------
InstallUtil /u MyService.exe
echo ---------------------------------------------------
echo Done

引用自:https://stackoverflow.com/questions/582896