从源代码通过 MSIX Core 创建 MSIX 包

.Msix Core引入了 .msix 部署,以选择 Windows 的以前版本。 可以利用 .MSIX 核心安装程序,使用 ClickOnce 创建应用程序。 这样,用户就可以下载 setup.exe,并通过 .MSIX 核心安装程序安装 .MSIX 应用程序。

在 web 服务器上托管你的应用程序

若要使用 .MSIX 核心安装程序准备好应用程序,需要在 web 服务器上托管应用程序包。 本部分提供有关如何在Azure上设置 web 应用、 Internet Information Services (IIS) Amazon Web Services (AWS) 的详细信息。

Azure

若要使用此选项,必须拥有 Azure 订阅。 若要获取一个帐户,请参阅 Azure 帐户页

创建 Azure Web 应用

若要开始操作,请转到 " Azure 门户" 页 ,然后执行以下步骤:

  1. 单击“创建资源”。
  2. 单击 " web ",然后选择 " web 应用"。
  3. 在 " 实例详细信息" 下,创建一个唯一的应用名称,然后为应用选择适当的设置。 例如,你将需要在 代码或 Docker 容器运行时堆栈 之间进行选择。 否则,保留所有其他默认值。
  4. 单击 " 创建 " 并完成向导。

承载应用包和网页

  1. 创建 web 应用后,选择该应用。
  2. 在“开发工具”下,单击“应用服务编辑器”。
  3. 在编辑器中,有一个默认的 hostingstart.html 文件。 右键单击文件资源管理器的空白区域,然后选择 " Upload 文件" 开始上传应用程序包。
  4. 再次右键单击 "文件资源管理器" 面板的空白区域,然后选择 " 新建文件 " 以创建新文件。 将该文件命名为默认 HTML 页面所需的名称。

为应用包 MIME 类型配置 web 应用

向 web 应用添加一个名为 Web.config 的新文件。 打开 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>

Internet Information Services (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 应用程序 项目。

将 IIS 配置为 Web 应用

  1. 解决方案资源管理器 中,右键单击根项目,然后选择 " 属性"。
  2. 在 "属性" 中,选择 " Web " 选项卡。
  3. 在 " 服务器 " 部分,从下拉菜单中选择 " 本地 IIS ",然后单击 " 创建虚拟目录"。

将应用程序包添加到 web 应用程序

将要分发的应用包添加到 web 应用程序:

  1. 解决方案资源管理器 中,右键单击项目节点。
  2. 选择 "添加 -> 新文件夹",并将文件夹命名为 ""。
  3. 若要将应用包添加到文件夹,请右键单击 "包" 文件夹,然后选择 "添加 -> 现有项"。 浏览到应用包位置。

创建 Web 页

根据需要创建 HTML 页面或任何其他 web 应用。 添加新 setup.exe 的链接。

为应用包 MIME 类型配置 web 应用

从 "解决方案资源管理器" 打开 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 存储桶并上传 .MSIX 包和网页

Amazon 简单存储 Service (S3) 是用于收集、存储和分析数据的 AWS 产品。 使用 S3 存储桶,可以方便地承载 Windows 10 应用包和网页以进行分发。

  1. 登录到 AWS。 在 " 服务 " 下找到 " S3"。
  2. 选择 " 创建存储桶 ",然后输入你的网站的 存储桶名称 。 按照提示设置属性和权限的对话框。 若要确保你的 Windows 10 应用可以从你的网站分发,请为你的 bucket 启用 "读取" 和 "写入" 权限,然后选择 "授予此 bucket 的公共读取 权限"。 单击 " 创建存储桶 " 完成此步骤。
  3. 完成后,将 .MSIX 包和网页上传到 S3 存储桶。

为应用包 MIME 类型配置 web 应用

使用 web 服务接口(如 S3 browser )添加新的 默认 HTTP 标头

  1. 导航到 " 工具 ",然后选择 " 默认 HTTP 标头"。
  2. 默认的 HTTP 标头 对话框中,单击 " 添加"。
  3. 在 " 添加新的默认 HTTP 标头 " 对话框中,指定 bucket 名称、文件名、标头名称和标头值,然后单击 " 添加新标头"。
    • Bucket 名称: .msix
    • 文件名: *. .msix
    • 标头名称: content-type
    • 标头值: application/.msix

备注

AWS 具有一些必须遵循的严格指导原则。 例如,Bucket 名称必须是唯一的,因此,如果使用上面的示例,则需要更改存储桶名称。

使用 .msix 核心安装程序构建 ClickOnce 应用程序

setup.exe ClickOnce 找到应用程序应用程序。 这与 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 核心将检测使用者是否在 Windows 1709 或更高版本上,并将其重定向到应用安装程序。

在 Microsoft Edge 上,你可以调用 getHostEnvironmentValue ()方法,返回值中的 os-生成 字段将指定该用户的操作系统版本。 然后,你可以在其中提示安装过程,以将 .msix Core (用于 Windows 10 版本1703及更低版本的) 或应用安装程序 (用于 Windows 10 版本1709和更高版本的) 。

用户体验

用户只需从开发人员的网页下载并运行 setup.exe。

  • 如果用户 setup.exe 运行时尚未安装 .msix 核心安装程序,则用户将看到 ClickOnce 提示,并单击 "安装" 以安装 .msix Core 安装程序。 安装程序将自动启动并显示开发人员的查询字符串中指定的 .MSIX 包的安装屏幕,以便用户可以安装应用程序。
  • 如果 .MSIX 核心安装程序已在用户运行 setup.exe 时安装,则 .MSIX Core 安装程序会自动启动,并显示在用户安装应用程序的查询字符串中指定的 .MSIX 包的安装屏幕。