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

问题描述 投票:0回答:2

为什么即使我将 Visual Studio 中的构建设置设置为

Release
,我在侧面加载的 UWP 发行版中创建的所有内容都放置在末尾带有
_test
的文件夹中?是因为微软假设侧面加载的应用程序始终是测试应用程序吗?

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

这就是我问的主要原因。我尝试将 appxbundle 发布到 AppCenter 供我的员工下载和安装。问题是,这些目标笔记本电脑没有安装 Microsoft Store(不要询问),因此 appxbundle 不会自动安装。因此,当我尝试通过 powershell 脚本安装时,我可以清楚地看到

Microsoft.NET.Native.Runtime.2.0
的依赖关系未得到满足,并且安装失败。当我为我的应用程序提取 appxbundle 时,我发现不包含任何依赖项。但是,如果我探索我的应用程序发布到的根文件夹,我可以发现
Microsoft.NET.Native.Runtime.2.0
就在那里,它只是没有将其放入 appxbundle 文件中。为了在这些笔记本电脑上安装这个应用程序,我必须启用开发人员模式,我必须压缩整个已发布的文件夹,将此 zip 文件发送给用户,让他们解压,然后让他们在根文件夹中运行 powershell 脚本。此 powershell 脚本安装我的 appxbundle、证书,并包含所有依赖项。

我在这里阅读了以下内容:

应用程序中心始终生成应用程序包。然而,调试版本是 不适合用于侧面加载。 ...以及提供的 .appxbundle Test 文件夹中的文件不包含所需的依赖项。

由于我的依赖项未包含在 appxbundle 中,并且根据 Microsoft 的说法,即使我在发布之前在 IDE 中选择

Debug
,我的应用程序似乎仍生成为
Release
构建。

visual-studio xamarin.forms uwp visual-studio-app-center
2个回答
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工程师Nico Zhu在评论中所说:“这是设计使然”


另请参阅:自定义 Visual Studio MSIX 打包项目输出


0
投票

对于将来的任何人,删除包名称中的

_Test
后缀的正确方法是将其添加到您的
.csproj
文件中。它应该位于
<Project>
标签内

  <Target Name="SetAppxPackageTestDir" BeforeTargets="_ComputeAppxPackageOutput">
    <PropertyGroup>
      <AppxPackageNameNeutral>$(ProjectName)_$(AppxManifestIdentityVersion)</AppxPackageNameNeutral>
      <_AppxPackageConfiguration Condition="'$(Configuration)' != 'Release'">_$(Configuration)</_AppxPackageConfiguration>
      <AppxPackageName>$(AppxPackageNameNeutral)_$(Platform)$(_AppxPackageConfiguration)</AppxPackageName>
      <AppxPackageTestDir>$(AppxPackageDir)$(AppxPackageNameNeutral)$(_AppxPackageConfiguration)\</AppxPackageTestDir>
      <AppxPackageTestExternalPackagesDir>$(AppxPackageDir)$(AppxPackageNameNeutral)$(_AppxPackageConfiguration)\$(ExternalPackagesDir)</AppxPackageTestExternalPackagesDir>
    </PropertyGroup>
  </Target>

这将覆盖由 Visual Studio 设置的变量,并且具有仅影响当前项目的额外好处

© www.soinside.com 2019 - 2024. All rights reserved.