逐步解說:手動部署無須重新簽署,且會保留商標資訊的 ClickOnce 應用程式
當您建立 ClickOnce 應用程式,然後提供給客戶發佈和部署時,客戶在傳統上必須更新部署資訊清單並重新簽署。 雖然這在大部分情況下仍是慣用的方法,但 .NET Framework 3.5 可讓您建立 ClickOnce 部署,讓客戶不必重新產生新的部署資訊清單即可部署。 如需詳細資訊,請參閱針對測試和實際執行伺服器部署 ClickOnce 應用程式但不重新簽署。
當您建立 ClickOnce 應用程式,然後將其提供給客戶發佈和部署時,應用程式可以使用客戶的商標,或保留您的商標。 例如,如果應用程式是單一專屬應用程式,您可能會想要保留商標。 如果應用程式針對每個客戶高度自訂,您可能會想要使用客戶的商標。 當您將應用程式提供給組織部署時,.NET Framework 3.5 可讓您保留商標、發行者資訊和安全性簽章。 如需詳細資訊,請參閱建立 ClickOnce 應用程式供其他人部署。
注意
在本逐步解說中,您會使用命令列工具 Mage.exe 或圖形化工具 MageUI.exe 來手動建立部署。 如需手動部署的詳細資訊,請參閱逐步解說:手動部署 ClickOnce 應用程式。
注意
在 .NET Core 3.1 和 .NET 5 或更新版本的 ClickOnce 中使用 dotnet-mage.exe,而不是使用 Mage.exe。 如需詳細資訊,請參閱適用於 .NET 的 ClickOnce。
必要條件
若要執行本逐步解說中的步驟,您需要下列各項:
您已準備好部署的 Windows Forms 應用程式。 此應用程式稱為 WindowsFormsApp1。
Visual Studio 或 Windows SDK。
若要使用 Mage.exe 部署具有多個部署和商標支援的 ClickOnce 應用程式
開啟 Visual Studio 命令提示字元或 Windows SDK 命令提示字元,然後變更為您用來儲存 ClickOnce 檔案的目錄。
建立以目前部署版本命名的目錄。 如果這是您第一次部署應用程式,您可能會選擇 1.0.0.0。
注意
您的部署版本可能與應用程式檔案版本不同。
在這裡建立名為 bin 的子目錄,並複製所有應用程式檔案,包括可執行檔、組件、資源和資料檔案。
使用 Mage.exe 的呼叫產生應用程式資訊清單。
mage -New Application -ToFile 1.0.0.0\WindowsFormsApp1.exe.manifest -Name "Windows Forms App 1" -Version 1.0.0.0 -FromDirectory 1.0.0.0\bin -UseManifestForTrust true -Publisher "A. Datum Corporation"
使用您的數位憑證簽署應用程式資訊清單。
mage -Sign WindowsFormsApp1.exe.manifest -CertFile mycert.pfx
使用 Mage.exe 的呼叫產生部署資訊清單。 根據預設,Mage.exe 會將 ClickOnce 部署標示為已安裝的應用程式,使其可在線上和離線執行。 若要只在使用者上線時才能使用應用程式,請使用
-i
引數搭配f
值。 由於此應用程式會利用多個部署功能,因此請排除 Mage.exe 的-providerUrl
引數。 (在 3.5 版之前的 .NET Framework 版本中,排除離線應用程式的-providerUrl
將會導致錯誤。)mage -New Deployment -ToFile WindowsFormsApp1.application -Name "Windows Forms App 1" -Version 1.0.0.0 -AppManifest 1.0.0.0\WindowsFormsApp1.manifest
請勿簽署部署資訊清單。
將所有檔案提供給將在其網路上部署應用程式的客戶。
此時,客戶必須使用自己的自我產生憑證簽署部署資訊清單。 例如,如果客戶為名為 Adventure Works 的公司工作,他可以使用 MakeCert.exe 工具來產生自我簽署憑證。 接下來,使用 Pvk2pfx.exe 工具,將 MakeCert.exe 所建立的檔案合併成可傳遞至 Mage.exe 的 PFX 檔案。
makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
接下來客戶會使用此憑證來簽署部署資訊清單。
mage -Sign WindowsFormsApp1.application -CertFile MyCert.pfx
客戶會將應用程式部署至其使用者。
若要使用 MageUI.exe 部署具有多個部署和商標支援的 ClickOnce 應用程式
開啟 Visual Studio 命令提示字元或 Windows SDK 命令提示字元,然後瀏覽至您要在其中儲存 ClickOnce 檔案的目錄。
在這裡建立名為 bin 的子目錄,並複製所有應用程式檔案,包括可執行檔、組件、資源和資料檔案。
建立以目前部署版本命名的子目錄。 如果這是您第一次部署應用程式,您可能會選擇 1.0.0.0。
注意
您的部署版本可能與應用程式檔案版本不同。
將 \bin 目錄移至您在步驟 2 中建立的目錄。
啟動圖形化工具 MageUI.exe。
MageUI.exe
從功能表中選取 [檔案]、[新增]、[應用程式資訊清單],以建立新的應用程式資訊清單。
在預設 [名稱] 索引標籤上,輸入此部署的名稱和版本號碼。 此外,請提供 [發行者] 的值,當應用程式部署時,它會用作 [開始] 功能表中應用程式捷徑連結的資料夾名稱。
選取 [應用程式選項] 索引標籤,然後按一下 [使用應用程式資訊清單的信任資訊]。 這會啟用此 ClickOnce 應用程式的協力廠商商標。
選取 [檔案] 索引標籤,然後按一下 [應用程式目錄] 文字方塊旁的 [瀏覽] 按鈕。
選取包含您在步驟 2 中所建立應用程式檔案的目錄,然後按一下資料夾選取對話方塊上的 [確定]。
移至 [填入] 按鈕,將所有應用程式檔案新增至檔案清單。 如果您的應用程式包含多個可執行檔,請從 [檔案類型] 下拉式清單中選取 [進入點],將此部署的主要可執行檔標示為啟動應用程式。 (如果您的應用程式只包含一個可執行檔,系統會標示 MageUI.exe。)
選取 [所需權限] 索引標籤,然後選取您需要應用程式判斷提示的信任層級。 預設值為 [完全信任],這適用於大多數應用程式。
從功能表中選取 [檔案]、[儲存],然後儲存應用程式資訊清單。 當您儲存應用程式資訊清單時,系統會提示您簽署應用程式資訊清單。
如果您的憑證儲存為檔案系統上的檔案,請使用 [簽署為憑證檔案] 選項,並使用省略號 (...) 按鈕從檔案系統選取憑證。
-或-
如果您的憑證保留在可從電腦存取的憑證存放區中,請選取 [用儲存的憑證簽署] 選項,然後從提供的清單中選取憑證。
從功能表中選取 [檔案]、[新增]、[部署資訊清單],以建立您的部署資訊清單,然後在 [名稱] 索引標籤上提供名稱和版本號碼 (在此範例中為 1.0.0.0)。
切換至 [更新] 索引標籤,並指定您希望此應用程式更新的頻率。 如果您的應用程式使用 ClickOnce 部署 API 來檢查更新本身,請清除標示為 [此應用程式應該檢查更新] 的核取方塊。
切換至 [應用程式參考] 索引標籤。您可以按一下 [選取資訊清單] 按鈕,然後選取您在先前步驟中建立的應用程式資訊清單,以預先填入此索引標籤上的所有值。
選擇 [儲存] 並將部署資訊清單儲存至磁碟。 當您儲存應用程式資訊清單時,系統會提示您簽署應用程式資訊清單。 按一下 [取消] 以儲存資訊清單而不簽署資訊清單。
將所有應用程式檔案提供給客戶。
此時,客戶必須使用自己的自我產生憑證簽署部署資訊清單。 例如,如果客戶為名為 Adventure Works 的公司工作,他可以使用 MakeCert.exe 工具來產生自我簽署憑證。 接下來,使用 Pvk2pfx.exe 工具,將 MakeCert.exe 所 建立的檔案合併成可傳遞至 MageUI.exe 的 PFX 檔案。
makecert -r -pe -n "CN=Adventure Works" -sv MyCert.pvk MyCert.cer pvk2pfx.exe -pvk MyCert.pvk -spc MyCert.cer -pfx MyCert.pfx
產生憑證之後,客戶現在會在 MageUI.exe 中開啟部署資訊清單以簽署部署資訊清單,然後加以儲存。 當簽署對話方塊出現時,客戶會選取 [簽署為憑證檔案] 選項,然後選擇其儲存在磁碟上的 PFX 檔案。
客戶會將應用程式部署至其使用者。