我可以在不使用 Add-AppDevPackage.ps1 的情况下构建依赖完整的 UWP 侧载应用程序吗?

Can I build a UWP sideload app that is dependency-complete on installation without using Add-AppDevPackage.ps1?

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

我看过一些文章概述了手动执行与此相关的操作的方法,但我不得不想象这不是 Visual Studio.

中的预期工作流程

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

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


更新:

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

... If you want to install the app using PowerShell, you still need to install the dependencies. You can use the Add-AppxPackage cmdlet to add a signed app package to a user account and use the DependencyPath parameter to add all other packages that are required for the installation of the app package. See the topic Add-AppxPackage and the Example 1: Add an app package to install the app and dependencies.

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

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

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

When should I build an .AppXBundle instead of an .AppX and vice-versa?

请检查Types of app packages:

.appx is a file that contains your app in a format that can be sideloaded on a device. Any single app package file created by Visual Studio is not intended to be submitted to Partner Center and should be used for sideloading and testing purposes only.

An app bundle is a type of package that can contain multiple app packages, each of which is built to support a specific device architecture. For example, an app bundle can contain three separate app packages for the x86, x64, and ARM configurations. App bundles should be generated whenever possible because they allow your app to be available on the widest possible range of devices.

因此,如果您的应用不会发布到 MS 商店,您只想旁加载它。您可以使用 .appx 文件。

How can I make sure my app downloads and installs whatever dependencies are missing from the system that's installing it?

@Breeze 已经在这个话题 上回答了这个问题。如果用户从 MS 商店安装您的应用程序,商店将自动安装您的应用程序需要但未安装的依赖项。如果他们侧载它,他们将需要手动安装依赖项。这些 Dependencies 位于包文件夹中的 Dependencies 文件夹中。

How can I ensure my dependencies are packaged and installed directly from the app package instead of being downloaded later?

根据@Breeze 的回复,如果您将应用程序包发布到 MS store 并让您的用户从 MS store 安装应用程序,store 将自动安装依赖项。这些依赖包不应附加到某个应用程序包。它应该安装在 OS,其他应用也可能需要它。

我知道这是一个旧的 post,但是为了 post真实性,请参阅 the docs about .appinstaller files。创建一个 .appinstaller 文件并以这种方式安装将引入必要的依赖项。 (它适用于 .appx/.appxbundle 而不仅仅是 .msix/.msixbundle。)