2017-08-31 91 views
0

使用VS2017社區我已經編寫了可在我的本地計算機上運行的服務。我遵循這裏的指令: https://docs.microsoft.com/en-us/dotnet/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer如何使用Visual Studio 2017社區部署Windows服務

並使用Installutil.exe成功安裝(按照上述鏈接中的說明)。都好。

我現在想在我們組織的六臺服務器上部署該服務器。在微軟的有關安裝服務的文檔(https://docs.microsoft.com/en-us/dotnet/framework/windows-services/how-to-install-and-uninstall-services)它說:

如果你是誰想要釋放一個Windows服務,用戶可以安裝和卸載你應該使用InstallShield

,並鏈接到一個開發商一個頁面適用於VS2012(不能發佈任何更多的鏈接作爲我的聲譽< 10)

我已經下載並安裝了「Microsoft Visual Studio 2017安裝程序項目」包,它允許我創建一個安裝項目。當我運行它時,它會正確安裝項目輸出(即將exe文件複製到Program Files中的正確文件夾),但不會創建該服務。

有關於本網站的服務部署(問題9021075)中的詳細說明,但是,當我按照提示進行操作,我得到上安裝1001錯誤。

所有我能找到的文件指的是早期版本的VS或以前的安裝程序包的,所以我也不肯定,如果我可以用我使用的軟件做到這一點。

因此,使用VS2017社區微軟的Visual Studio 2017年安裝項目,如何創建一個獨立的安裝程序來部署時使用InstallUtil本地安裝工作正常服務?

或者我可以在目標機器上使用InstallUtil嗎?我想我需要爲他們安裝Visual Studio,我不想這樣做。有更快的方法嗎?

我只有6臺服務器上安裝此,因此即使部分手工作業,各地可能會做。

+0

InstallUtil.exe是.NET Framework的一部分,因此不需要安裝Visual Studio。 –

+0

謝謝。幫助我找到解決方案 –

回答

1

有關您用於serviceProcessInstaller1serviceInstaller1文件的設置的更多信息將需要調試此問題,因爲安裝程序引發的1001錯誤是一般性錯誤。

這樣做的另一種方法是使用Topshelf,這是舉辦使用.NET框架編寫服務的框架。它簡化了服務的創建,允許開發人員創建一個簡單的控制檯應用程序,可以使用Topshelf作爲服務進行安裝。原因很簡單:調試控制檯應用程序比服務更容易。一旦應用程序經過測試並準備投入使用,Topshelf便於將應用程序作爲服務安裝。

或者,你可以使用InstallUtil.exe。它是.NET Framework的一部分,因此不需要安裝Visual Studio。

+0

謝謝。我現在使用InstallUtil對它進行了排序,但我會檢查出Topshelf作爲更持久的解決方案 –

1

謝謝你的回覆。我現在有一個解決方案。我在目標服務器上找到InstallUtil(在我的情況下,它是在C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319中,但搜索會找到它)。我複製並添加到我的項目作爲內容,所以當我現在部署它時,我將InstallUtil與我的EXE放在同一個文件夾中。

要安裝,我運行CMD作爲管理員,cd到項目文件夾,發出命令:

installutil.exe myService.exe

這是一次性的任務。一旦服務正在運行,爲了更新它,我只需要停止它,上傳新的myService.exe(&任何DLL)來覆蓋舊的並重新啓動它。

相關問題