自定义 Visual Studio MSIX 打包项目输出
Posted
技术标签:
【中文标题】自定义 Visual Studio MSIX 打包项目输出【英文标题】:Customizing Visual Studio MSIX packaging project output 【发布时间】:2020-12-09 23:13:26 【问题描述】:我正在使用 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
我一直在搜索文档,但找不到任何关于它创建的目录或它生成的 index.html 文件的信息。我想自定义所有这些,添加发行说明等。
这是一个 WPF 应用程序,如果这有什么不同的话。
【问题讨论】:
【参考方案1】:我只是将original answer from MSFT 的副本放在这里:
包的输出目录在 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft 的 Microsoft.AppxPackage.Targets 文件中定义\VisualStudio\v16.0\AppxPackage(取决于您的 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\Landing(取决于 VS 版本)。
【讨论】:
这适用于开发人员机器。从 Azure DevOps 部署时如何修复它? 对于 Visual Studio 2022 社区,路径是C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Microsoft\VisualStudio\v17.0\AppxPackage
【参考方案2】:
如果您使用 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/"'
或使用管道变量:
msbuildArguments:
/p:OutDir=$(Build.BinariesDirectory)/
/p:AppxPackageTestDir="$(Build.BinariesDirectory)/MyApp.Installer/AppPackages/$(packageName)_$(newVersion)/"
这给出了一个名为“MyApp_1.0.0”的文件夹 而不是令人困惑的“MyApp_1.0.0_Test”。
.appinstaller 文件中的 Uri 属性将正确指向该文件夹。
【讨论】:
以上是关于自定义 Visual Studio MSIX 打包项目输出的主要内容,如果未能解决你的问题,请参考以下文章
求助visual studio2013怎么设置参考线,以及怎么自定义代码配色
visual studio 2010自定义类继承CString问题