共用方式為


逐步解說:手動部署 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 命令列工具部署應用程式

  1. 建立用來存放 ClickOnce 部署檔案的目錄。

  2. 在剛才建立的部署目錄中,建立版本子目錄。 如果這是第一次部署應用程式,請將版本子目錄命名為 1.0.0.0。

    注意事項注意事項

    部署的版本可能有別於應用程式的版本。

  3. 將所有的應用程式檔案複製到版本子目錄,包括可執行檔、組件、資源及資料檔。 若有必要,可以建立包含其他檔案的額外子目錄。

  4. 開啟 Windows SDK 或 Visual Studio 命令提示字元,並移至版本子目錄。

  5. 呼叫 Mage.exe 以建立應用程式資訊清單。 下列陳述式會為編譯後要在 Intel x86 處理器上執行的程式碼建立應用程式資訊清單。

    mage -New Application -Processor x86 -ToFile AppToDeploy.exe.manifest -name "My App" -Version 1.0.0.0 -FromDirectory . 
    
    注意事項注意事項

    請務必在 -FromDirectory 選項後加上句號 (.),表示指定目前的目錄。 如果沒有加上句號,就必須指定應用程式檔案的路徑。

  6. 以 Authenticode 憑證簽署應用程式資訊清單。 以憑證檔路徑取代 mycert.pfx。 以憑證檔密碼取代 passwd。

    mage -Sign AppToDeploy.exe.manifest -CertFile mycert.pfx -Password passwd
    
  7. 移至部署目錄的根目錄。

  8. 呼叫 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
    
  9. 以 Authenticode 憑證簽署部署資訊清單。

    mage -Sign AppToDeploy.application -CertFile mycert.pfx -Password passwd
    
  10. 將部署目錄中的所有檔案複製到部署目的地或媒體。 這可能是網站或 FTP 站台上的資料夾、檔案共用,或是 CD-ROM。

  11. 提供使用者安裝應用程式所需的 URL、UNC 或實體媒體。 如果提供 URL 或 UNC,您就必須給予使用者部署資訊清單的完整路徑。 例如,如果將 AppToDeploy 部署至 http://webserver01/ 上的 AppToDeploy 目錄,則完整的 URL 路徑就會是 http://webserver01/AppToDeploy/AppToDeploy.application。

若要以 MageUI.exe 圖形工具部署應用程式

  1. 建立用來存放 ClickOnce 部署檔案的目錄。

  2. 在剛才建立的部署目錄中,建立版本子目錄。 如果這是第一次部署應用程式,請將版本子目錄命名為 1.0.0.0。

    注意事項注意事項

    部署的版本可能有別於應用程式的版本。

  3. 將所有的應用程式檔案複製到版本子目錄,包括可執行檔、組件、資源及資料檔。 若有必要,可以建立包含其他檔案的額外子目錄。

  4. 啟動 MageUI.exe 圖形工具。

    MageUI.exe
    
  5. 從功能表依序選取 [檔案]、[新增]、[應用程式資訊清單],以建立新的應用程式資訊清單。

  6. 在預設的 [名稱] 索引標籤上,輸入此部署的名稱和版本號碼。 此外,還要指定應用程式的建置目標 [處理器],例如 x86。

  7. 選取 [檔案] 索引標籤,然後按一下 [應用程式目錄] 文字方塊旁邊的省略符號 (...) 按鈕。 [瀏覽資料夾] 對話方塊隨即出現。

  8. 選取包含應用程式檔案的版本子目錄,然後按一下 [確定]。

  9. 如果您將會從 Internet Information Services (IIS) 進行部署,請選取 [填入時將 .deploy 副檔名加到沒有此副檔名的任何檔案] 核取方塊。

  10. 按一下 [填入] 按鈕,將所有的應用程式檔案加入到檔案清單中。 如果您的應用程式含有一個以上的可執行檔,請從 [檔案類型] 下拉式清單選取 [進入點],將此部署的主要可執行檔標記為啟動應用程式 (如果您的應用程式只含有一個可執行檔,MageUI.exe 將會為您標記該檔)。

  11. 選取 [所需權限] 索引標籤,並選取應用程式判斷提示需要的信任層級。 預設值為 [FullTrust],這個值適用於多數的應用程式。

  12. 從功能表中選取 [檔案],然後選取 [另存新檔]。 [簽署選項] 對話方塊隨即出現,並提示您簽署應用程式資訊清單。

  13. 如果在檔案系統上有儲存為檔案的憑證,請使用 [用憑證檔簽署] 選項,並使用省略符號 (...) 按鈕從檔案系統選取憑證, 然後輸入憑證密碼。

    -或-

    如果您的憑證保留在可從電腦存取的憑證存放區中,請選取 [用儲存的憑證簽署] 選項,並從提供的清單中選取憑證。

  14. 按一下 [確定] 簽署應用程式資訊清單。 [另存新檔] 對話方塊隨即出現。

  15. 在 [另存新檔] 對話方塊中指定版本目錄,然後按一下 [儲存]。

  16. 從功能表依序選取 [檔案]、[新增] 和 [部署資訊清單],建立部署資訊清單。

  17. 在 [名稱] 索引標籤上,指定此部署的名稱和版本號碼 (在本範例中為 1.0.0.0)。 此外,還要指定應用程式的建置目標 [處理器],例如 x86。

  18. 選取 [描述] 索引標籤,並指定 [發行者] 和 [產品] 的值 ([產品] 是將應用程式安裝在用戶端電腦以供離線使用時,在 Windows [開始] 功能表上顯示的應用程式名稱)。

  19. 選取 [部署選項] 索引標籤,並在 [開始位置] 文字方塊中指定 Web 伺服器或共用上應用程式資訊清單的名稱。 例如,\\myServer\myShare\AppToDeploy.application。

  20. 如果您在前面的步驟中加入了 .deploy 副檔名,也請在這裡選取 [使用 .deploy 副檔名]。

  21. 選取 [更新選項] 索引標籤,並指定您想要多久更新此應用程式一次。 如果應用程式使用 UpdateCheckInfo 來自我檢查更新,請清除 [此應用程式應檢查是否有更新] 核取方塊。

  22. 選取 [應用程式參考] 索引標籤,然後按一下 [選取資訊清單] 按鈕。 [開啟舊檔] 對話方塊隨即出現。

  23. 選取先前建立的應用程式資訊清單,然後按一下 [開啟]。

  24. 從功能表中選取 [檔案],然後選取 [另存新檔]。 [簽署選項] 對話方塊隨即出現,並提示您簽署部署資訊清單。

  25. 如果在檔案系統上有儲存為檔案的憑證,請使用 [用憑證檔簽署] 選項,並使用省略符號 (...) 按鈕從檔案系統選取憑證, 然後輸入憑證密碼。

    -或-

    如果您的憑證保留在可從電腦存取的憑證存放區中,請選取 [用儲存的憑證簽署] 選項,並從提供的清單中選取憑證。

  26. 按一下 [確定] 簽署部署資訊清單。 [另存新檔] 對話方塊隨即出現。

  27. 在 [另存新檔] 對話方塊中,上移一層目錄至部署的根目錄,然後按一下 [儲存]。

  28. 將部署目錄中的所有檔案複製到部署目的地或媒體。 這可能是網站或 FTP 站台上的資料夾、檔案共用,或是 CD-ROM。

  29. 提供使用者安裝應用程式所需的 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,只要開啟部署資訊清單、選取 [應用程式參考] 索引標籤、按一下 [選取資訊清單] 按鈕,再選取更新的應用程式資訊清單,即可更新部署資訊清單。

請參閱

參考

Mage.exe (資訊清單產生和編輯工具)

MageUI.exe (圖形用戶端、資訊清單產生和編輯工具)

ClickOnce 部署資訊清單

ClickOnce 應用程式資訊清單

概念

發行 ClickOnce 應用程式