首頁

目前文章總數:157 篇

  

最後更新:2024年 12月 07日

0003. C# Visual Studio 佈署工具ClickOnce - 不使用Visual Studio替換佈署檔案內容與憑證的方法 - 使用SdK Mage.exe 工具

日期:2018年 09月 20日

標籤: C# Asp.NET Framework ClickOnce Windows Forms Mage.exe

摘要:ClickOnce


目的說明:在微軟Visual Studio中,常使用內建的工具ClickOnce發行到自己架設的IIS上,提供使用者下載程式,進行自動更新檔案的功能。
     在不使用(安裝)Visual Studio程式的情況下,要更新ClickOnce的檔案資料。
     通常在IIS環境下不會安裝Visual Studio程式,如果需要IIS管理者自行更新ClickOnce檔案,或者客製化的更新ClickOnce檔案
     就會用到Mage.exe 或者MageUi.exe 這兩個工具。
情境說明:在IIS的ClickOnce程式,需要更換程式連線Server的位置,不透過Visual Studio,只用Mage.exe 完成更換連線位置的工作
基本介紹:本篇分為4大部分。
第一部分:準備工作
第二部分:環境介紹
第三部分:使用Mage.exe更換連線流程
第四部份:總結補充






第一部分:準備工作

Step 1: 安裝.net FrameWork

請先確定有用 .net FrameWork https://www.microsoft.com/zh-tw/download/details.aspx?id=17718

Step 2: 確認Mage.exe 位置

通常在 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools 底下
※ .net FrameWork版本不同 就請在C:\Program Files (x86)\Microsoft SDKs\Windows\ 找到相對應的版本



第二部分:環境介紹

Step 1:原始的【環境佈署狀態】

※現在在IIS的ClickOnce程式,需要更換程式連線Server的位置,不透過Visual Studio,只用Mage.exe 完成更換連線位置的工作


Step 2:希望改變後的【環境佈署狀態】



Step 3:針對上述環境模擬的補充-1

瀏覽器連線ClickOnce安裝頁面 -> 進行安裝


Step 4:針對上述環境模擬的補充-2

安裝完成後,如下圖程式畫面 ,在最下方有連線位置 : 192.168.8.100
※ 內容與Icon不顯示




第三部分:使用Mage.exe更換連線流程

Step 1:找出 IIS 上 ClickOnce的檔案

※ 使用Remote NG遠端桌面連線工具


Step 2:複製檔案

將該發行的檔案全部複製到其他位置 (這裡為了安全,不動到IIS上的ClickOnce檔案)
這邊是放在 C:\Users\Administrator\Desktop\EEW2015 上


Step 3:進入資料夾

Application Files資料夾裡面,內部還有一層 “程式名稱+版號”的資料夾。 Ex:MyProgram_1_5_0_1
這邊請這資料夾底下有副檔案.deploy的檔案全部手動移除,結果應如下第二張圖:
※.deploy檔案是軟體工程師從Visual Studio 發行時選擇的封裝



Step 4:更改連線位置-設定檔案

我們的目標是更改連線位置,所以這邊我們改變 ServerList.xml 檔案的連線位置。開啟該檔案


Step 5:更改連線位置-儲存

上圖是原本的連線位置 192.168.8.100 下圖是更改後的連線位置 192.168.8.121 ,然後儲存檔案



Step 6:Windows Command操作

接著使用命令提示字元,請記得使用管理者權限開啟。


Step 7:清除ClickOnce快取

請先執行以下指令,清除clickonce 的快取

mage -cc




Step 8:更新ClickOnce應用程式清單

因為我們更新檔案了,故須更新,規則如下(沒有憑證密碼的話 -password 後面都可以不用輸入):

mage -update "更新的.manifest應用程式清單位置"   -certfile ".pfx憑證檔案位置" -password "憑證密碼"


實際指令如下:

mage -update "C:\Users\Administrator2\Desktop\EEW2015\Application Files\資料夾名_1_5_0_1\檔案名稱.manifest" -certfile "F:\clickoncetest\MyKey\憑證檔名.pfx" -p
assword 密碼


成功的畫面如下:


Step 9:憑證的檔案

憑證的檔案通常如下:


Step 10:再次清除ClickOnce快取

我們已經完成了重新加密憑證的工作,這邊需要在執行一次ClickOnce 快取清除確保正確運行

mage -cc




Step 11:再將.deploy檔案蓋回

請再將.deploy加回ClickOnce的部署資料中,如下圖:


Step 12:本地安裝驗證-1

將改完的ClickOnce的檔案執行,在本地安裝確認是否正常


Step 13:本地安裝驗證-2

可以發現成功的安裝,並且連結導向到192.168.8.121


Step 14:本地驗證正確,因此可遠端部署到生產

因為在本地正確運行,我們在將部署資料移動到IIS上,請全部覆蓋


Step 15:驗證部署後遠端安裝-1

回到瀏覽器執行遠端部署後的網頁連結,進行安裝


Step 16:驗證部署後遠端安裝-2

可以發現真的可以連線到192.168.8.100 進行連線。確實是從IIS下載



Step 17:完成需求

從IIS安裝完成的程式,也確實導向到192.168.8.121了,Mage.exe 完成我們的需求




第四部分:總結補充

總結補充

Mage.exe MSDN的說明 https://www.google.com.tw/#q=mage.exe+
Mage.exe 是很好的工具,可以重新部署ClickOnce資料。
MageUI.exe 目前使用後都會發生憑證加密錯誤的訊息。最後就放棄了。