自定义 Visual Studio MSIX 打包项目输出

Mat*_*ory 7 packaging visual-studio msix

我正在使用 Visual Studio MSIX 打包项目在网络共享上为内部应用程序创建安装程序。

一个问题是它正在创建一个末尾带有“_Test”的目录。

为什么会这样以及我该如何摆脱它?我只想要“MyApp.MSIX_0.0.1.0”,或者理想情况下,“MyApp.0.0.1.0”。

 Directory of I:\

08/14/2020  09:44 AM    <DIR>          .
08/14/2020  09:44 AM    <DIR>          ..
08/14/2020  09:44 AM            21,312 index.html
08/14/2020  09:23 AM               601 MyApp.MSIX.appinstaller
08/14/2020  09:37 AM    <DIR>          MyApp.MSIX_0.0.1.0_Test
               2 File(s)         21,913 bytes
               3 Dir(s)  62,444,621,824 bytes free
Run Code Online (Sandbox Code Playgroud)

我一直在搜索文档,但找不到有关它创建的目录或它生成的 index.html 文件的任何信息。我想自定义所有这些,添加发行说明等。

如果这有什么区别的话,这是一个 WPF 应用程序。

Bog*_*che 7

我只是将MSFT 的原始答案的副本放在这里:

包的输出目录在C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage 的Microsoft.AppxPackage.Targets文件中定义(取决于您的版本) Visual Studio)。

如果要删除“_Test”后缀,可以修改定义输出目录的行。在我的文件中,它位于第 3190 - 3196 行附近:

在此输入图像描述

要修改输出 html 文件,请修改“Landing”子目录中的 index.template.html 文件 - C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage \登陆(取决于VS版本)。


Rye*_*ead 6

如果使用 Azure Pipelines 进行部署,则可以向 MSBuild 任务添加参数来执行此操作。例如:

硬编码:

task: MSBuild@1
    displayName: MSBuild
    inputs:
      solution: '**/*.sln'
      platform: 'x64'
      configuration: 'Release'
      msbuildArguments: '/p:OutDir=$(Build.BinariesDirectory)/    
/p:AppxPackageTestDir="$(Build.BinariesDirectory)/MyApp.Installer/AppPackages/MyApp_1.0.0/"'
Run Code Online (Sandbox Code Playgroud)

或使用管道变量:

msbuildArguments: 
 /p:OutDir=$(Build.BinariesDirectory)/
/p:AppxPackageTestDir="$(Build.BinariesDirectory)/MyApp.Installer/AppPackages/$(packageName)_$(newVersion)/"
Run Code Online (Sandbox Code Playgroud)

这将提供一个名为“MyApp_1.0.0”的文件夹,而不是令人困惑的“MyApp_1.0.0_Test”。

.appinstaller 文件中的 Uri 属性将正确指向该文件夹。