使用 Visual Studio 建立應用程式安裝程式檔案

從 Windows 10 版本 1803 和 Visual Studio 2017 Update 15.7 開始,側載應用程式可以設定為使用 .appinstaller 檔案接收自動更新。 Visual Studio 支援啟用這些更新。

應用程式安裝程式檔案位置

檔案 .appinstaller 可以裝載在 HTTP 端點或 UNC 共用資料夾等共用位置,並包含尋找要安裝之應用程式套件的路徑。 用戶從共用位置安裝應用程式,並啟用新更新的定期檢查。

將項目設定為以正確的 Windows 版本為目標

您可以在建立項目時設定 TargetPlatformMinVersion 屬性,或稍後從專案屬性進行變更。

重要

只有在 是 Windows 10 版本 1803 或更新版本時 TargetPlatformMinVersion ,才會產生應用程式安裝程式檔案。

建立套件

若要透過側載散發應用程式,您必須建立應用程式套件 (.appx/.msix) 或應用程式套件組合 (.appxbundle/.msixbundle),並將其發佈至共用位置。

若要這樣做,請使用 Visual Studio 中的 [ 建立應用程式套件 精靈] 搭配下列步驟。

  1. 以滑鼠右鍵按兩下項目,然後選擇 [ 市集 -> 建立應用程式套件]。

    Context menu with navigation to Create App Packages

    [建立應用程式套件] 精靈隨即出現。

  2. 選取 [我想要建立側載的套件]。啟用自動更新

    Create Your Packages dialog window shown

    只有當項目的 TargetPlatformMinVersion 設定為正確的 Windows 10 版本時,才會啟用自動更新

  3. [ 選取和設定封裝] 對話框可讓您選取支援的架構組態。 如果您選取套件組合,它會產生單一安裝程式,但是如果您不想要套件組合,而且偏好每個架構一個套件,您也會為每個架構取得一個安裝程式檔案。 如果您不確定選擇哪些架構,或想要深入了解各種裝置所使用的架構,請參閱應用程式套件架構

  4. 設定任何其他詳細數據,例如版本編號或套件輸出位置。

    Create App Packages window with package configuration shown

  5. 如果您在步驟 2 中核取 [啟用自動更新],[設定更新 設定] 對話框隨即出現。 您可以在這裏指定 安裝 URL 和更新檢查的頻率。

    Configure Update Settings window with publish location configuration

  6. 成功封裝應用程式時,對話框會顯示包含應用程式套件的輸出資料夾位置。 輸出資料夾包含側載應用程式所需的所有檔案,包括可用來升級應用程式的 HTML 頁面。

發佈套件

若要讓應用程式可供使用,產生的檔案必須發佈至指定的位置:

發佈至共享資料夾 (UNC)

如果您想要透過通用命名約定 (UNC) 共用資料夾發佈套件,請將應用程式套件輸出資料夾和安裝 URL 設定為相同的路徑,請參閱步驟 6 以取得詳細資料。 精靈會在正確的位置產生檔案,使用者將會從相同的路徑取得應用程式和未來的更新。

發佈至 Web 位置 (HTTP)

發佈至 Web 位置需要存取權才能將內容發佈至網頁伺服器,確定最終 URL 符合精靈中定義的安裝 URL(如需詳細資訊,請參閱步驟 6)。 通常,檔傳輸通訊協定 (FTP) 或 SSH 檔案傳輸通訊協定 (SFTP) 是用來上傳檔案,但根據 Web 提供者而定,還有其他發佈方法,例如 MSDeploy、SSH 或 Blob 記憶體。

若要設定網頁伺服器,您必須確認用於使用中檔案類型的MIME類型。 此範例適用於 web.config 網際網路資訊服務 (IIS):

<configuration>
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/vns.ms-appx" />
      <mimeMap fileExtension=".appxbundle" mimeType="application/vns.ms-appx" />
      <mimeMap fileExtension=".appinstaller" mimeType="application/xml" />
    </staticContent>  
  </system.webServer>  
</configuration>