逐步解說:手動部署 ClickOnce 應用程式
如果您無法使用 Visual Studio 部署 ClickOnce 應用程式,或是需要使用進階部署功能 (如信任的應用程式部署),就應該使用 Mage.exe 命令列工具來建立 ClickOnce 資訊清單。 本逐步解說將說明如何使用命令列版本 (Mage.exe) 或圖形化版本 (MageUI.exe) 的「資訊清單產生和編輯工具」來建立 ClickOnce 部署。
必要條件
本逐步解說包含建置部署前必須先選擇的一些必要條件和選項。
安裝 Mage.exe 和 MageUI.exe。
Mage.exe 和 MageUI.exe 是 Windows Software Development Kit (SDK) 的一部分。 您必須已經安裝 Windows SDK,或是有隨附於 Visual Studio 的 Windows SDK 版本。 如需詳細資訊,請參閱 MSDN 上的 Windows SDK。
提供要部署的應用程式。
本逐步解說假設您手邊有準備要部署的 Windows 應用程式。 這個應用程式稱為 AppToDeploy。
決定如何散發部署。
散發選項包括:Web、檔案共用或光碟片。 如需詳細資訊,請參閱 ClickOnce 安全性和部署。
判斷應用程式是否需要更高的信任層級。
如果應用程式需要完全信任 (例如,使用者系統的完整存取權限),您可以使用 Mage.exe 的 -TrustLevel 選項來設定此項。 如果要為應用程式定義自訂權限集合,您可以從其他資訊清單複製網際網路或內部網路權限區段,加以修改以適應您的需要,並使用文字編輯器或 MageUI.exe 將之加入至應用程式資訊清單。 如需詳細資訊,請參閱受信任的應用程式部署概觀。
取得 Authenticode 憑證。
您應該以 Authenticode 憑證來簽署部署。 您可以使用 Visual Studio、MageUI.exe、MakeCert.exe 和 Pvk2Pfx.exe 工具產生測試憑證,或是從憑證授權單位 (Certificate Authority,CA) 取得憑證。 如果選擇使用受信任的應用程式部署,您就必須對所有的用戶端電腦執行憑證的一次安裝。 如需詳細資訊,請參閱受信任的應用程式部署概觀。
確定應用程式沒有內含 UAC 資訊的資訊清單。
您必須判斷應用程式是否包含具有使用者帳戶控制 (User Account Control,UAC) 資訊的資訊清單,例如 <dependentAssembly> 項目。 若要檢查資訊清單,可以使用 Windows Sysinternals Sigcheck 公用程式。
如果應用程式包含具有 UAC 詳細資料的資訊清單,您必須重新建置不含 UAC 資訊的應用程式。 如果是 Visual Studio 中的 C# 專案,請開啟專案屬性並選取 [應用程式] 索引標籤。 在 [資訊清單] 下拉式清單中,選取 [建立無資訊清單應用程式]。 如果是 Visual Studio 中的 Visual Basic 專案,請開啟專案屬性、選取 [應用程式] 索引標籤,然後按一下 [檢視 UAC 設定]。 在開啟的資訊清單檔中,移除單一 <asmv1:assembly> 項目內的所有項目。
判斷應用程式在用戶端電腦上所需的必要條件。
從 Visual Studio 部署的 ClickOnce 應用程式可以將必要條件安裝啟動載入器 (setup.exe) 隨附在部署中。 本逐步解說將建立兩份 ClickOnce 部署需要的資訊清單。 您可以使用 GenerateBootstrapper 工作來建立必要條件啟動載入器。
若要以 Mage.exe 命令列工具部署應用程式
建立用來存放 ClickOnce 部署檔案的目錄。
在剛才建立的部署目錄中,建立版本子目錄。 如果這是第一次部署應用程式,請將版本子目錄命名為 1.0.0.0。
注意事項 部署的版本可能有別於應用程式的版本。
將所有的應用程式檔案複製到版本子目錄,包括可執行檔、組件、資源及資料檔。 若有必要,可以建立包含其他檔案的額外子目錄。
開啟 Windows SDK 或 Visual Studio 命令提示字元,並移至版本子目錄。
呼叫 Mage.exe 以建立應用程式資訊清單。 下列陳述式會為編譯後要在 Intel x86 處理器上執行的程式碼建立應用程式資訊清單。
mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory .
注意事項 請務必在 -FromDirectory 選項後加上句號 (.),表示指定目前的目錄。 如果沒有加上句號,就必須指定應用程式檔案的路徑。
以 Authenticode 憑證簽署應用程式資訊清單。 以憑證檔路徑取代 mycert.pfx。 以憑證檔密碼取代 passwd。
mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
移至部署目錄的根目錄。
呼叫 Mage.exe 以產生部署資訊清單。 根據預設,Mage.exe 會將您的 ClickOnce 部署標記為已安裝的應用程式,如此就能在線上和離線模式執行。 若要讓應用程式只能在使用者處於線上時執行,請使用 -Install 選項並將值設定為 false。 如果使用預設值,且使用者會從網站或檔案共用安裝您的應用程式,請確定 -ProviderUrl 選項的值是指向 Web 伺服器或共用上應用程式資訊清單的位置。
mage -New Deployment -Processor x86 -Install true -Publisher "My Co." -ProviderUrl "\\myServer\myShare\AppToDeploy.application" -AppManifest 1.0.0.0\AppToDeploy.exe.manifest -ToFile AppToDeploy.application
以 Authenticode 憑證簽署部署資訊清單。
mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
將部署目錄中的所有檔案複製到部署目的地或媒體。 這可能是網站或 FTP 站台上的資料夾、檔案共用,或是 CD-ROM。
提供使用者安裝應用程式所需的 URL、UNC 或實體媒體。 如果提供 URL 或 UNC,您就必須給予使用者部署資訊清單的完整路徑。 例如,如果將 AppToDeploy 部署至 http://webserver01/ 上的 AppToDeploy 目錄,則完整的 URL 路徑就會是 http://webserver01/AppToDeploy/AppToDeploy.application。
若要以 MageUI.exe 圖形工具部署應用程式
建立用來存放 ClickOnce 部署檔案的目錄。
在剛才建立的部署目錄中,建立版本子目錄。 如果這是第一次部署應用程式,請將版本子目錄命名為 1.0.0.0。
注意事項 部署的版本可能有別於應用程式的版本。
將所有的應用程式檔案複製到版本子目錄,包括可執行檔、組件、資源及資料檔。 若有必要,可以建立包含其他檔案的額外子目錄。
啟動 MageUI.exe 圖形工具。
MageUI.exe
從功能表依序選取 [檔案]、[新增]、[應用程式資訊清單],以建立新的應用程式資訊清單。
在預設的 [名稱] 索引標籤上,輸入此部署的名稱和版本號碼。 此外,還要指定應用程式的建置目標 [處理器],例如 x86。
選取 [檔案] 索引標籤,然後按一下 [應用程式目錄] 文字方塊旁邊的省略符號 (...) 按鈕。 [瀏覽資料夾] 對話方塊隨即出現。
選取包含應用程式檔案的版本子目錄,然後按一下 [確定]。
如果您將會從 Internet Information Services (IIS) 進行部署,請選取 [填入時將 .deploy 副檔名加到沒有此副檔名的任何檔案] 核取方塊。
按一下 [填入] 按鈕,將所有的應用程式檔案加入到檔案清單中。 如果您的應用程式含有一個以上的可執行檔,請從 [檔案類型] 下拉式清單選取 [進入點],將此部署的主要可執行檔標記為啟動應用程式 (如果您的應用程式只含有一個可執行檔,MageUI.exe 將會為您標記該檔)。
選取 [所需權限] 索引標籤,並選取應用程式判斷提示需要的信任層級。 預設值為 [FullTrust],這個值適用於多數的應用程式。
從功能表中選取 [檔案],然後選取 [另存新檔]。 [簽署選項] 對話方塊隨即出現,並提示您簽署應用程式資訊清單。
如果在檔案系統上有儲存為檔案的憑證,請使用 [用憑證檔簽署] 選項,並使用省略符號 (...) 按鈕從檔案系統選取憑證, 然後輸入憑證密碼。
-或-
如果您的憑證保留在可從電腦存取的憑證存放區中,請選取 [用儲存的憑證簽署] 選項,並從提供的清單中選取憑證。
按一下 [確定] 簽署應用程式資訊清單。 [另存新檔] 對話方塊隨即出現。
在 [另存新檔] 對話方塊中指定版本目錄,然後按一下 [儲存]。
從功能表依序選取 [檔案]、[新增] 和 [部署資訊清單],建立部署資訊清單。
在 [名稱] 索引標籤上,指定此部署的名稱和版本號碼 (在本範例中為 1.0.0.0)。 此外,還要指定應用程式的建置目標 [處理器],例如 x86。
選取 [描述] 索引標籤,並指定 [發行者] 和 [產品] 的值 ([產品] 是將應用程式安裝在用戶端電腦以供離線使用時,在 Windows [開始] 功能表上顯示的應用程式名稱)。
選取 [部署選項] 索引標籤,並在 [開始位置] 文字方塊中指定 Web 伺服器或共用上應用程式資訊清單的名稱。 例如,\\myServer\myShare\AppToDeploy.application。
如果您在前面的步驟中加入了 .deploy 副檔名,也請在這裡選取 [使用 .deploy 副檔名]。
選取 [更新選項] 索引標籤,並指定您想要多久更新此應用程式一次。 如果應用程式使用 UpdateCheckInfo 來自我檢查更新,請清除 [此應用程式應檢查是否有更新] 核取方塊。
選取 [應用程式參考] 索引標籤,然後按一下 [選取資訊清單] 按鈕。 [開啟舊檔] 對話方塊隨即出現。
選取先前建立的應用程式資訊清單,然後按一下 [開啟]。
從功能表中選取 [檔案],然後選取 [另存新檔]。 [簽署選項] 對話方塊隨即出現,並提示您簽署部署資訊清單。
如果在檔案系統上有儲存為檔案的憑證,請使用 [用憑證檔簽署] 選項,並使用省略符號 (...) 按鈕從檔案系統選取憑證, 然後輸入憑證密碼。
-或-
如果您的憑證保留在可從電腦存取的憑證存放區中,請選取 [用儲存的憑證簽署] 選項,並從提供的清單中選取憑證。
按一下 [確定] 簽署部署資訊清單。 [另存新檔] 對話方塊隨即出現。
在 [另存新檔] 對話方塊中,上移一層目錄至部署的根目錄,然後按一下 [儲存]。
將部署目錄中的所有檔案複製到部署目的地或媒體。 這可能是網站或 FTP 站台上的資料夾、檔案共用,或是 CD-ROM。
提供使用者安裝應用程式所需的 URL、UNC 或實體媒體。 如果提供 URL 或 UNC,您就必須給予使用者部署資訊清單的完整路徑。 例如,如果將 AppToDeploy 部署至 http://webserver01/ 上的 AppToDeploy 目錄,則完整的 URL 路徑就會是 http://webserver01/AppToDeploy/AppToDeploy.application。
後續步驟
需要部署應用程式的新版本時,請建立新目錄並依照新版本來命名 (例如,1.0.0.1),然後將新的應用程式檔案複製到新目錄。 接下來,您必須遵循前述步驟建立和簽署新的應用程式資訊清單,並更新和簽署部署資訊清單。 在使用 Mage.exe 搭配 -New 和 –Update 呼叫中指定同樣新的版本時要謹慎,因為 ClickOnce 只會更新較新的版本,而版本的新舊是依最左邊整數為最高位數字的規則來判斷。 如果您使用的是 MageUI.exe,只要開啟部署資訊清單、選取 [應用程式參考] 索引標籤、按一下 [選取資訊清單] 按鈕,再選取更新的應用程式資訊清單,即可更新部署資訊清單。
請參閱
參考
MageUI.exe (圖形用戶端、資訊清單產生和編輯工具)