培训
学习路径
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
可选包中包含可与主要包相集成的内容。 这些内容可用于可下载内容 (DLC),因为大小限制而划分大型应用,或者用于随附从原始应用中单独分隔出来的任何其他内容。 有关可选包的详细信息,请参阅博客文章:使用可选包扩展应用程序。
相关集是可选包的扩展。 相关集允许跨主包和可选包强制执行严格的版本集。 如果相关集部署在 Microsoft Store 外部,则其发布者可能是与主应用不同的发布者。 有关相关集的详细信息,请参阅博客文章:用于创建相关集的工具。
可选包和相关集都在主应用的 MSIX 容器内运行。
要获取所有最新的开发工具,请参阅适用于 Windows 10 的下载和工具。
备注
要将使用可选包和/或相关集的应用提交到 Microsoft Store,你需要拥有权限。 如果未提交到 Microsoft Store,则可选包和相关集可用于无需合作伙伴中心权限的业务线 (LOB) 或企业应用。 请参阅 Windows 开发人员支持,以获取提交使用可选包和相关集的应用的权限。
在阅读本文时,建议按照 GitHub 上的可选包代码示例进行操作,以便亲身了解可选包和相关集在 Visual Studio 中的工作方式。
要在 Visual Studio 中创建可选包,需要:
Package.appxmanifest
文件。 导航到“打包”选项卡并记下包系列名称,即 "_" 字符之前的所有内容。Package.appxmanifest
并选择“打开方式”>“XML(文本)编辑器”。<Dependencies>
元素。 添加以下内容,并将 [MainPackageDependency]
替换为步骤 2 中的包系列名称。 这将指定可选包依赖于主包。
<uap3:MainPackageDependency Name="[MainPackageDependency]"/>
备注
如果要创建其他发布者的可选包,则需要指定主应用程序的发布者(如果发布者不同)。 如 <uap4:MainPackageDependency Name="Main_app" Publisher="CN=Contoso..." />。 如果要发布到 Microsoft Store,则这不起作用。
从步骤 1 到 4 设置包依赖关系后,可以如常继续开发。 有关详细信息,请参阅博客文章:生成第一个可选包。
可以将 Visual Studio 配置为每次部署可选包时都重新部署主包。 要在 Visual Studio 中设置生成依赖项,应:
现在,每次输入 F5 或生成可选包项目时,Visual Studio 都会首先生成主包项目。 这将确保主项目和可选项目同步。
相关集由主包和可选包组成,这些包通过主包的 .appxbundle 或 .msixbundle 文件中指定的元数据紧密耦合。 此元数据将主包链接到可选包(使用 .appxbundle 文件名 + 版本),并将可选包链接到主包(使用与版本无关的名称)。 Visual Studio 可帮助你获取文件中正确的元数据。
在安装所有相关集包(由主包中的版本指定)之前,不允许使用任何包的最新版本,以这种方式对相关集中包的版本控制进行同步。 包独立提供服务,但在更新所有包之前,不能使用集中指定的包。 有关相关集的详细信息,请参阅博客文章:用于创建相关集的工具。
要为相关集配置应用的解决方案,请使用以下步骤:
重要
新文本文件必须命名为:Bundle.Mapping.txt
。
Bundle.Mapping.txt
文件中输入字符串 "[OptionalProjects]",后跟可选包项目的相对路径。 下面是 Bundle.Mapping.txt
示例文件:[OptionalProjects]
"..\ActivatableOptionalPackage1\ActivatableOptionalPackage1.vcxproj"
"..\ActivatableOptionalPackage2\ActivatableOptionalPackage2.vcxproj"
以这种方式配置解决方案时,Visual Studio 将为主包创建名为 AppxBundleManifest.xml 的捆绑包清单,其中包含相关集所需的所有元数据。
请注意,与可选包一样,相关集的 Bundle.Mapping.txt
文件仅适用于 Windows 10 版本 1703 或更高版本。 此外,应用的目标平台最低版本应设置为 10.0.15063.0 或更高版本。
用户可以进入其“设置”应用并移除可选包。 同样,开发人员可以使用 RemoveOptionalPackageAsync 移除可选包的列表。
PackageCatalog catalog = PackageCatalog.OpenForCurrentPackage();
List<string> optionalList = new List<string>();
optionalList.Add("FabrikamAgeAnalysis_kwpnjs8c36mz0");
// Warn user that application will be restarted.
var result = await catalog.RemoveOptionalPackagesAsync(optionalList);
if (result.ExtendedError != null)
{
throw removalResult.ExtendedError;
}
备注
如果是相关集,平台需要重启主应用程序才能完成移除,以避免应用包含从要移除的包加载的内容的情况。 应用必须通知用户,在应用调用 API 之前,将需要重启应用程序。
如果可选包此时为“仅内容”,开发人员应明确告知平台,在开发人员移除可选包之前,应用程序“未使用”即将移除的包。 这也允许开发人员在不重启的情况下移除包。
Visual Studio 当前不支持调试相关集可选项目。 要解决此问题,可以部署和启动激活 (Ctrl + F5) 调试程序,并手动将其附加到进程。 要附加调试程序,请转到 Visual Studio 中的“调试”菜单,选择“附加到进程...”,并将调试程序附加到主应用进程。
培训
学习路径
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
文档
介绍如何创建单一捆绑包,以将应用的 .appx 包文件与应用包的引用进行捆绑。
本文提供有关在 MSIX 工具包中 AppInstaller 文件生成器工具的详细信息。
MSIX:适用于 Windows 10 的包桌面应用。 替换已过期的安装程序。
田中吉姆哈告诉我们所有关于 MSIX 的信息,即安装 Windows 应用的包格式,包括如何使用 Visual Studio 打包现有代码,以及如何通过 Web、Microsoft Store 或企业分发网络部署和分发应用。 章节 00:00 - 简介 00:51 - 打包应用以使用 MSIX 进行分发的好处? 01:57 - MSIX 是否会可靠地安装和卸载我的应用? 02:56 - 如果转换为 MSIX,我将能够使用哪些新功能? 03:56 - 演示:使用 Visual Studio 将示例“HeadTrax”应用打包到 MSIX 15:55 - 使用 MSIX 打包应用后,如何分发应用? 16:41 - 我可以在哪里了解有关 MSIX 的详细信息? 17:27 - 制表符或空格?? 推荐的资源 MSIX 文档 获取 MSIX 打包工具 MSIX 技术社区 使用 Azure Pipelines 自动执行 MSIX 生成和部署(DevOps 示例) 创建 Azure 帐户(12 个月免费 + 200 美元信用额度)