簡體   English   中英

使用WPF作為啟動項目並依賴Windows Service創建解決方案的單個安裝程序

[英]Creating an single installer of a solution with WPF as start up project and depend on Windows Service

問類似的問題,因為沒有人回答上一個問題

我有一個關於類庫項目,WPF項目(啟動項目)和Windows Service項目的解決方案。 我想創建一個安裝程序,以便在用戶安裝應用程序時同時安裝WPF(UI)和Windows服務。

我在網上找到的大多數資源都只談論一個或另一個,而不能同時談論兩者。 例如

我檢查了一些關於stackoverflow的問題,但要么沒有一個人回答,要么像這個問題這個問題一樣模糊的答案。

任何建議如何實現這一目標?

我不是各種安裝程序解決方案的專家,但是可以的。 我知道是因為我的項目做到了。

我們過去一直使用InstallShield ,但是出於與本次討論無關的原因,我們正在積極轉向InstallAware 坦白地說,我懷疑任何安裝程序解決方案(例如InstallShield,InstallAware,Wix等)都可以用來執行此操作,前提是它可以在安裝過程中執行批處理腳本(稍后對此進行詳細介紹) 。 實際上,當我們使用InstallAware構建新的安裝程序時,我們正在使用WinZip自解壓可執行文件臨時交付基於WPF的應用程序和Windows服務。 WinZip自解壓程序將WPF應用程序放在C:\\ Program Files \\ <application> \\ <version>文件夾中,將Windows Service放在C:\\ Program Files \\ <application> \\ Common文件夾中,然后安裝並啟動Windows服務。

當然,所有這些技巧都在於安裝Windows Service。 最初,我們使用InstallUtil.exe實用程序來執行此操作,但是我們不得不謹慎行事,並將其與安裝程序一起提供,因為我們無法驗證我們是否可以依賴目標系統上可用的實用程序。 在沿途的一些點,我看了這個答案由@Marc Gravell 這提供了跳板,我的答案在這里 ,它提供了讓你的Windows服務的命令行安裝本身,而不需要InstallUtil.exe詳細說明。

因此,作為一組說明...

  1. 根據此處的詳細信息更新Windows服務。
  2. 使用以下命令創建.bat文件:

    cd <PathToWindowsServiceInstallationFolder>
    <YourWindowsService> .exe-安裝

  3. 為您的WPF服務和Windows服務構建安裝程序。 請注意,這應集中於將文件部署到正確的位置。 您需要將.bat文件作為安裝程序的一部分。 如果您的安裝程序解決方案允許您將文件復制到在安裝過程結束時刪除的臨時文件夾,請將.bat文件復制到該位置,因為在安裝程序完成后不需要它。

  4. 最后,在安裝過程中從安裝程序執行.bat文件。 這將安裝Windows服務。

並不是所有事情都那么復雜。

要注意的一件事是您的用戶應計划以管理員身份運行安裝程序。 由於安裝Windows服務會更新注冊表,因此,沒有管理特權的用戶在嘗試安裝產品時可能會遇到問題。

高溫超導

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM