UWP 始终在测试文件夹中发布输出

Posted

技术标签:

【中文标题】UWP 始终在测试文件夹中发布输出【英文标题】:UWP publish output always in test folder 【发布时间】:2019-09-07 22:46:19 【问题描述】:

为什么即使我将 Visual Studio 中的构建设置设置为 Release,我在侧载 UWP 分发中创建的所有内容都放在最后带有 _test 的文件夹中?是因为 MS 假定侧载应用程序始终是测试应用程序吗?

我将 appxbundle 文件放在 AppCenter 中,并使用 AppCenter 将我们的内部生产应用程序分发给使用 AppCenter 的内部员工。

这就是我问的主要原因。我尝试将 appxbundle 发布到 AppCenter 供我的员工下载和安装。问题是,这些目标笔记本电脑没有安装 Microsoft Store(不要问),所以 appxbundle 不会自动安装。因此,当我尝试通过 powershell 脚本进行安装时,我可以清楚地看到 Microsoft.NET.Native.Runtime.2.0 的依赖项没有得到满足并且安装失败。当我为我的应用程序提取 appxbundle 时,我发现没有包含任何依赖项。但是,如果我探索我的应用程序发布到的根文件夹,我可以找到 Microsoft.NET.Native.Runtime.2.0 在那里,它只是没有进入 appxbundle 文件。为了在这些笔记本电脑上安装这个应用程序,我必须启用开发人员模式,我必须压缩整个发布的文件夹,将此压缩文件发送给用户,让他们解压,然后让他们在根文件夹中运行 powershell 脚本.这个 powershell 脚本会安装我的 appxbundle、cert,并包含所有依赖项。

我读到HERE 如下:

App Center 总是会生成一个 app bundle。但是,调试版本是 不打算用于侧载。 ...以及提供的 .appxbundle Test 文件夹中的文件不包含所需的依赖项。

由于我的依赖项未包含在 appxbundle 中,并且根据 Microsoft 的说法,我的应用似乎正在生成为 Debug 构建,即使我在发布前在我的 IDE 中选择了Release

【问题讨论】:

这对您的业务有影响吗? @NicoZhu-MSFT 我最好澄清我为什么要问这个问题 构建日志确实说它是为 Release 构建的,所以我想这一切都是设计使然,只是令人困惑。 正如你所说,这是设计使然,解释这一点的文档较少。 什么?这没有任何意义。无缘无故添加_Test? @PostImpatica,您可能应该通过反馈选项在 VS 中打开一个错误 - 我也不喜欢魔法误导字符串 【参考方案1】:

遗憾的是,它被硬编码在 msbuild 文件“Microsoft.AppxPackage.Targets”中

VS2019的位置C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppxPackage.Targets


或者正如 MSFT UWP Engineer Nico Zhu 在 cmets 中所说:“这是设计使然”


另见:Customizing Visual Studio MSIX packaging project output

【讨论】:

UWP 工程师的另一个巧妙决定

以上是关于UWP 始终在测试文件夹中发布输出的主要内容,如果未能解决你的问题,请参考以下文章

如何确保 UWP 应用在启动时始终全屏显示?

如果打包 UWP,Visual Studio 总是重建解决方案

在 UWP 应用中使用 AudioGraph 将音频输出发送到两台设备

uwp,如何访问本地数据目录

最小化或锁定时继续播放 Audiograph UWP 输出

UWP C++ 鼠标按钮向上事件无法始终如一地工作