1

现在我有一个 UWP 应用程序在不同平台和 Win10 版本的不同地方崩溃,到目前为止,只有一个提供了关于Microsoft.NET.CoreRuntime.1.1丢失的一些可操作的错误消息,应该联系开发人员。

我已经看到一些文章概述了手动执行与此相关的事情的方法,但我不得不想象这不是 Visual Studio 中的预期工作流。

如果我知道要针对的 Windows 的最低版本以及我要支持的所有平台,我的应用程序或其生成的清单是否应该确定需要哪些依赖项并为我提供自动打包它们的选项?如果是这样,怎么做?CLI 示例是首选,但 Visual Studio 的答案就足够了。

商店应用程序自动安装所需的一切是没有意义的,但我需要我的 sideload 应用程序的消费者Add-AppDevPackage.ps1每次都运行这个 powershell 脚本,以确保不会丢失任何依赖项。


更新:

目前,这目前无法完成,但没关系。目前您几乎唯一能做的就是使用 powershell 脚本或手动处理您的依赖包。也就是说,powershell 脚本比类似问答中指出的更灵活。例如,这个答案使它看起来比它需要的更复杂:

... 如果您想使用 PowerShell 安装应用程序,您仍然需要安装依赖项。您可以使用 Add-AppxPackage cmdlet 将签名的应用包添加到用户帐户,并使用 DependencyPath 参数添加安装应用包所需的所有其他包。请参阅主题 Add-AppxPackage 和示例 1:添加应用程序包以安装应用程序和依赖项。

Add-AppxPackage -Path "C:\Users\user1\Desktop\MyApp.appx" -DependencyPath "C:\Users\user1\Desktop\Microsoft.NET.CoreRuntime.2.1.appx"

您根本不需要直接指向您的依赖-DependencyPath项,即如果您从生成的\AppPackage\目录运行 powershell 脚本,您甚至不需要使用开关,如下所示:

在此处输入图像描述

您需要做的就是直接运行脚本,不仅安装依赖项,还安装应用程序。

在此处输入图像描述

4

2 回答 2

2

我应该何时构建 .AppXBundle 而不是 .AppX,反之亦然?

请检查应用程序包的类型

.appx 是一个文件,其中包含您的应用程序,其格式可以在设备上旁加载。由 Visual Studio 创建的任何单个应用程序包文件都不打算提交给合作伙伴中心,而应仅用于旁加载和测试目的。

应用程序包是一种可以包含多个应用程序包的包类型,每个应用程序包都是为了支持特定的设备架构而构建的。例如,一个应用程序包可以包含三个单独的应用程序包,用于 x86、x64 和 ARM 配置。应尽可能生成应用程序包,因为它们允许您的应用程序在尽可能广泛的设备上可用。

因此,如果您的应用程序不会发布到 MS 商店,您只需将其侧载即可。您可以使用 .appx 文件。

如何确保我的应用程序下载并安装安装它的系统中缺少的任何依赖项?

@Breeze 在这个线程上回答了这个问题How to add Microsoft.NET.CoreRuntime.2.1 for UWP package installer?. 如果用户从 MS 商店安装您的应用程序,商店将自动安装您的应用程序需要但未安装的依赖项。如果他们正在旁加载它,他们将需要手动安装依赖项。这些依赖项位于包文件夹中的 Dependencies 文件夹中。

如何确保我的依赖项直接从应用程序包中打包和安装,而不是稍后下载?

根据@Breeze 的回复,如果你将你的应用包发布到微软商店,让你的用户从微软商店安装应用程序,商店会自动安装依赖项。这些依赖包不应附加到某人的应用程序包中。它应该安装在操作系统上,其他应用程序也可能需要它。

于 2019-05-21T07:23:19.970 回答
0

我知道这是一篇旧帖子,但对于后代,请参阅有关 .appinstaller 文件的文档。创建一个 .appinstaller 文件并以这种方式安装将引入必要的依赖项。(它适用于 .appx/.appxbundle 而不仅仅是 .msix/.msixbundle。)

于 2021-11-09T13:19:29.190 回答