從原始程式碼建立具有 MSIX 核心的 MSIX 套件

MSIX Core提供 MSIX 部署,以選取舊版 Windows。 您可以利用 MSIX Core 安裝程式,使用 ClickOnce 建立應用程式。 這可讓您的使用者下載 setup.exe,並透過 MSIX Core 安裝程式安裝 MSIX 應用程式。

將您的應用程式裝載在 web 伺服器上

若要讓您的應用程式準備好使用 MSIX Core installer 進行開機,您必須將應用程式套件裝載在 web 伺服器上。 本節提供有關如何在Azure上設定 web 應用程式、 Internet Information Services (IIS) ,以及Amazon Web Services (AWS) 的詳細資料。

Azure

若要使用此選項,您必須擁有 Azure 訂用帳戶。 若要取得一個,請參閱 Azure 帳戶頁面

建立 Azure Web 應用程式

若要開始使用,請移至 Azure 入口網站頁面 ,並遵循下列步驟:

  1. 按一下 [建立資源]。
  2. 按一下 [ web ],然後選取 [ web 應用程式]。
  3. 在 [ 實例詳細資料] 底下,建立唯一的應用程式名稱,然後為您的應用程式選取適當的設定。 例如,您必須在程式 代碼或 Docker 容器執行時間堆疊之間進行選擇。 否則,請將其他專案保留為預設值。
  4. 按一下 [ 建立 ] 並完成 wizard。

裝載應用程式套件與網頁

  1. 建立 web 應用程式之後,請選取應用程式。
  2. 在 [開發工具] 底下,按一下 [App Service 編輯器]。
  3. 在編輯器中,有預設的 hostingstart.html 檔案。 以滑鼠右鍵按一下檔案總管的空白處,然後選取Upload檔案以開始上傳您的應用程式套件。
  4. 再以滑鼠右鍵按一下檔案總管面板的空白處,然後選取 [ 新增 檔案] 以建立新的檔案。 將檔案命名為您要預設 HTML 網頁的名稱。

設定應用程式套件 MIME 類型的 web 應用程式

將名為 Web.config 的新檔案新增至 web 應用程式。 開啟 Web.config 檔案,然後將下列 XML 新增至檔案。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <!--This is to allow the web server to serve resources with the appropriate file extensions-->
    <staticContent>
      <mimeMap fileExtension=".appx" mimeType="application/appx" />
      <mimeMap fileExtension=".msix" mimeType="application/msix" />
    </staticContent>
  </system.webServer>
</configuration>

網際網路資訊服務 (IIS)

IIS 是選擇性的 Windows 功能。 若要安裝 IIS:

  1. 按一下 [開始],並搜尋開啟或關閉 Windows 功能
  2. 選取Internet Information Services
  3. 也請確定您安裝的ASP.NET 4.5或更新版本。 在 [ Windows 功能] 對話方塊中,展開 [ Internet Information Services - World Wide Web 服務- 應用程式開發功能],然後選取大於或等於ASP.NET 4.5ASP.NET版本。
  4. 按一下 [確定] 開始安裝。

需要 Visual Studio 2017 (或更新版本) 和 Web 開發工具。 如果您已經安裝 Visual Studio 2017 或更新版本,請確定您已安裝 ASP.NET 和 Web 開發工作負載。 否則,請從這裡安裝 Visual Studio。

建置 Web 應用程式

以系統管理員身分啟動 Visual Studio,然後使用空白專案範本建立新的Visual c # Web 應用程式專案。

使用您的 Web 應用程式設定 IIS

  1. 方案總管中,以滑鼠右鍵按一下根專案,然後選取 [ 屬性]。
  2. 在 [屬性] 中,選取 [ Web ] 索引標籤。
  3. 在 [ 伺服器 ] 區段中,從下拉式功能表中選擇 [ 本機 IIS ],然後按一下 [ 建立虛擬目錄]。

將應用程式套件新增至 web 應用程式

將您想要散發的應用程式套件新增至 web 應用程式:

  1. 方案總管中,以滑鼠右鍵按一下專案節點。
  2. 選取 [加入- 新增資料夾] 並命名資料夾套件
  3. 若要將應用程式套件新增至資料夾,請以滑鼠右鍵按一下 [套件] 資料夾,然後選取 [加入現有專案]。 流覽至應用程式套件位置。

建立網頁

根據您的需求,視需要建立 HTML 網頁或任何其他 web 應用程式。 新增新 setup.exe 的連結。

設定應用程式套件 MIME 類型的 web 應用程式

從方案 explorer 開啟 Web.config 檔案,然後在專案中新增下列 XML。

<system.webServer>
  <!--This is to allow the web server to serve resources with the appropriate file extensions-->
  <staticContent>
    <mimeMap fileExtension=".appx" mimeType="application/appx" />
    <mimeMap fileExtension=".msix" mimeType="application/msix" />
  </staticContent>
</system.webServer>

Amazon Web Services (AWS)

若要使用此選項,您必須擁有 AWS 成員資格。 如需詳細資訊,請參閱 AWS 帳戶詳細資料

建立 Amazon S3 bucket,然後上傳您的 MSIX 套件和網頁

Amazon Simple 儲存體 Service (S3) 是 AWS 的供應專案,可用於收集、儲存及分析資料。 S3 值區是一種便利的方式,可裝載 Windows 10 的應用程式套件和網頁以進行散發。

  1. 登入 AWS。 在 [ 服務 尋找 S3] 下。
  2. 選取 [ 建立 bucket ],並輸入您網站的 bucket 名稱 。 遵循對話方塊提示以設定屬性和許可權。 若要確保您的 Windows 10 應用程式可以從網站散發,請啟用您的 bucket 的讀取寫入許可權,然後選取[授與此值區的公用讀取權限]。 按一下 [ 建立 bucket ] 以完成此步驟。
  3. 當您完成時,請將您的 MSIX 套件和網頁上傳至 S3 bucket。

設定應用程式套件 MIME 類型的 web 應用程式

使用像是 S3 瀏覽器 的 web 服務介面來新增 預設的 HTTP 標頭

  1. 流覽至 [ 工具 ],然後選取 [ 預設 HTTP 標頭]。
  2. 在 [ 預設 HTTP 標頭 ] 對話方塊中,按一下 [ 新增]。
  3. 在 [ 加入新的預設 HTTP 標頭 ] 對話方塊中,指定 [bucket 名稱]、[檔案名]、[標頭名稱] 和 [標頭值],然後按一下 [ 新增標頭]。
    • Bucket 名稱: msix-套件
    • 檔案名: *. msix
    • 標頭名稱: content-type
    • 標頭值: application/msix

注意

 AWS 有一些您必須遵循的嚴格指導方針。 例如,值區名稱必須是唯一的,因此,如果您使用上述範例,您將需要變更值區名稱。

使用 MSIX Core installer 來建立 ClickOnce 應用程式

尋找您的應用程式 ClickOnce setup.exe。 這會引用 Git 專案的複製,並透過 Visual Studio 專案建立併發布。

執行 URL 命令以建立新的 setup.exe

請確定您已遵循在 Visual Studio 中複製、建立和發佈 MSIX Core 解決方案的指示。 如需參考,可在這裡找到 GitHub 專案

流覽至您發行 setup.exe 檔案的目錄,然後執行此命令:

.\setup.exe -url=<location of your msix in the webservice>

例如:

.\setup.exe -url="https://appinstallerdemo.azurewebsites.net/MSIXCore/msixmgrWrapper.application?https://appinstallerdemo.azurewebsites.net/MSIXCore/notepadplus.msix#"

簽署應用程式

因為上一個步驟建立了新的 setup.exe,所以您必須重新簽署應用程式,以確認您是應用程式的受信任發行者,以及建立應用程式的完整性。 您可以使用 SignTool 並提供您的憑證。

將應用程式散發給您的使用者

您現在可以使用其網站上的連結或下載按鈕,指向新的 setup.exe。 MSIX Core 的目標物件是 Windows 10 1703 版及更早版本的使用者。 應用程式安裝程式是在 Windows 1709 或更新版本上 MSIX 封裝的理想安裝程式。 應用程式安裝程式可針對取用者端的磁碟空間進行優化,且可以直接從 HTTP 位置安裝應用程式。 MSIX Core 會偵測取用者是否在 Windows 1709 或更新版本,並將其重新導向至應用程式安裝程式。

在 Microsoft Edge 上,您可以呼叫getHostEnvironmentValue () 方法,而傳回值中的作業系統組建欄位將會指定使用者的 os 版本。 然後,您可以在該處提示安裝程式,使用 MSIX Core (Windows 10、1703版及更早版本的) ,或應用程式安裝程式 (1709 版和更新版本的 Windows 10。

使用者體驗

使用者只需從開發人員的網頁下載並執行 setup.exe。

  • 如果使用者執行 setup.exe 時尚未安裝 MSIX Core 安裝程式,使用者會看到 ClickOnce 提示字元,然後按一下 [安裝] 以安裝 MSIX Core 安裝程式。 安裝程式會自動啟動,並顯示開發人員查詢字串中指定之 MSIX 套件的安裝畫面,讓使用者可以安裝應用程式。
  • 如果當使用者執行 setup.exe 時,已安裝 MSIX Core 安裝程式,MSIX Core 安裝程式會自動啟動,並顯示查詢字串中指定之 MSIX 套件的安裝畫面,以便使用者安裝應用程式。