iT邦幫忙

2021 iThome 鐵人賽

DAY 12
0
Software Development

@30天 | C# WixToolset + WPF 帥到不行的安裝包系列 第 12

@Day12 | C# WixToolset + WPF 帥到不行的安裝包 [系統背景服務化]

  • 分享至 

  • xImage
  •  

鑒於

HelloWorld 專案是一般.net Core 的 MVC專案,
我們安裝系統完成後,總不能都要讓別人開啟小黑窗吧0.0….
所以我們來讓HelloWorld 的專案底層服務化吧 !

首先我們在HelloWorld專案上安裝 Microsoft.Extensions.Hosting.WindowsServices

然後在Program 內 加入UseWindowsService();

HelloWorld專案就已經可以做成WindwosService 了
那因為有增加Dll 的關係,我們HelloWorld 專案需要重新發佈 打包
用Day 3 的方式處理掉。

然後我們看到Product.wxs裡面
我們新增一個 新的 Fragment在我們 ProductComponents 上面

 <Fragment>
     <Component Id="cmp0664ED639015C443993CB8969BD6448D" Directory="INSTALLFOLDER" Guid="{6C85D1F5-3B46-4FBC-9C6D-007E476D0E7D}">
     <File Id="filA5D6E0AECC10963EACFBDD58A3762306" KeyPath="yes" DiskId="1" Vital="yes" Source="DemoHelloWorld\HelloWorld.exe"/>
     <ServiceInstall Id="HelloWorldInstaller" Name="HelloWorld"
                     DisplayName="Aslan demo use HelloWorld" Description="demo use"
                     Type="ownProcess" Vital="yes"
                     Start="auto"
                     ErrorControl="normal"
                     Account="LocalSystem"
                     Arguments="-start"
                     Interactive="no" />
     <ServiceControl Id="StartHelloWorldService" Name="HelloWorld"
                     Stop="both" Remove="uninstall"
                     Wait="yes" />
   </Component>
 </Fragment>

這段是將 HelloWorld.exe 檔案額外拉出來做服務啟動的部分,
當然額外拉出來後,下面的HelloWorld.exe檔案要記得移除,不然會出錯。

然後在最上面註冊部分加入

   <ComponentRef Id="cmp0664ED639015C443993CB8969BD6448D" />

重新安裝後,我們可以看到

HelloWorld 已經在背景等候著了,
我們按右鍵執行,開啟網頁測試!

那如果說沒有使用自訂動作的情況下,
背景服務會自動執行...
推測應該是執行順序有衝突



-後記

如果要測試系統服務化了話,
可以使用CMD,新增HelloWorld服務的指令,
路徑需要修正成你的exe位置

sc create HelloWorld binpath= "D:\WixToolset Demo\DemoUse.Installer\DemoHelloWorld\HelloWorld.exe"

刪除HelloWorld服務

sc delete HelloWorld 

Day12程式碼
https://github.com/Aslan7826/defaultMVC/commits/Day12


上一篇
@Day11 | C# WixToolset + WPF 帥到不行的安裝包 [分離Product.wxs]
下一篇
@Day13 | C# WixToolset + WPF 帥到不行的安裝包 [桌面捷徑]
系列文
@30天 | C# WixToolset + WPF 帥到不行的安裝包30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言