2011-11-17 139 views

回答

310

導航到.net文件夾中的installutil.exe(對於.net 4,例如C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319)並使用它來安裝您的服務,如下所示:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe" "c:\myservice.exe" 
+41

不要忘記運行命令提示符「以管理員身份」 – fabriciorissetto

+20

如果是64位編譯服務,使用「C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ installutil.exe」。 – nme

+13

我得到一個奇怪的錯誤。沒有RunInstallerAttribute的公共安裝程序。可以在.exe程序集中找到屬性。刪除InstallState文件,因爲沒有安裝程序 – Nick

12

執行以下操作:

  1. 具有管理員權限啓動命令提示符(CMD)。
  2. 類型c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe [your windows service path to exe]
  3. 按回報,那就是那!

使用管理員權限打開它很重要,否則您可能會發現無意義的錯誤。如果你有任何問題,請檢查你是否先用管理員權限打開它!

要打開管理員權限,請右鍵單擊「命令提示符」和「以管理員身份運行」。

來源: http://coderamblings.wordpress.com/2012/07/24/how-to-install-a-windows-service-using-the-command-prompt/

60

如果目錄的名字有一個像c:\program files\abc 123一個空格,則必須使用路徑周圍的雙引號。

installutil.exe "c:\program files\abc 123\myservice.exe" 

Install windows service from command prompt

如果設置了像下面一個bat文件這讓事情變得更加簡單,

例如要安裝服務,營造 「myserviceinstaller.bat」 和 「以管理員身份運行

@echo off 
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 
installutil.exe "C:\Services\myservice.exe" 

if ERRORLEVEL 1 goto error 
exit 
:error 
echo There was a problem 
pause 

卸載服務,

只需添加一個-u到installutil命令。

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 

C:\Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe -u "C:\Services\myservice.exe" 
0

當您的程序集版本和您的Visual Studio項目Biuld設置點網2或4安裝相同的版本。

與installutil同一版本的安裝服務

如果建立點網4

鍵入c:\ WINDOWS \ microsoft.net \框架\ v4.0.30319 \ installutil.exe

如果Build in dot net 2

輸入c:\ windows \ microsoft.net \ framework \ v2.0.11319 \ installutil。exe

1
  1. 使用管理員權限啓動命令提示符(CMD)。
  2. 鍵入c:\ WINDOWS \ microsoft.net \框架\ v4.0.30319 \ installutil.exe [您的Windows服務路徑EXE]
  3. 按回車鍵
0
  1. 運行Windows命令提示符爲管理員
  2. 粘貼此代碼:cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\去夾
  3. 編輯和太運行此:installutil C:\ProjectFolder\bin\Debug\MyProject.exe

注:要卸載:installutil /u C:\ProjectFolder\bin\Debug\MyProject.exe

12

沒有錯,SC創建命令。 只是你需要知道正確的ARGS:

SC CREATE "MySVC" binpath= 「D:\Me\Services\MySVC\MySVC.exe" 
+1

這是引用*官方*方式來安裝/修改/刪除服務的唯一答案。而且,這並不依賴於正在安裝的.NET Framework,而是可以與任何類型的文件一起使用,而不僅僅是.NET二進制文件。 – Alejandro

+1

是的..這就是爲什麼我喜歡這種方法,並總是建議它,因爲所有的工作需要做到可以屬於任何.net FW版本的EXE。 – Sid

+0

這是爲我工作的唯一解決方案。謝謝。 –

1

安裝服務: -

「C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ InstallUtil.exe」「C:\服務\ myservice.exe 「

UnInsatall服務隊: -

」C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ InstallUtil.exe「 -u」 C:\ SERVICES \ myservice.Service.exe 「

1

我必須在此主題中添加一點。要安裝/卸載64位版本的程序集,應使用64位版本的工具。要安裝服務,該命令應該是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" 
"C:\YourFolder\YourService.exe" 

和卸載命令應該是:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe" -u 
"C:\YourFolder\YourService.exe" 
1

如果你正在使用PowerShell和要安裝的.NET服務,您可以使用Install-Service模塊。它是InstalUtil工具的包裝。

它暴露3個命令

  • 安裝-服務 - 調用InstallUtil.exe pathToExecutable命令
  • 安裝-ServiceIfNotInstalled - 第一它檢查是否服務 安裝,如果不執行該方法安裝-服務
  • Uninstall-Service-卸載服務。可以使用可執行路徑的ServiceName。

代碼到該模塊可以被看作here