#visual-studio #packaging #msix
#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
Я просматривал документацию, но не могу найти ничего о создаваемых ею каталогах или index.html файл, который он генерирует. Я хотел бы настроить все это, добавить примечания к выпуску и т.д.
Это приложение WPF, если это имеет какое-либо значение.
Ответ №1:
Я просто размещаю здесь копию оригинального ответа от MSFT:
Выходной каталог пакетов определен в Корпорации Майкрософт.AppxPackage.Нацеливает файл на C:Program Файлы (x86) Microsoft Visual Studio 2019Enterprise MSBuild Microsoft VisualStudio v16.0 AppxPackage (в зависимости от вашей версии Visual Studio).
Если вы хотите удалить суффикс «_Test», вы можете изменить строки, определяющие выходной каталог. В моем файле это было примерно в строках 3190-3196:
Чтобы изменить выходной HTML-файл, измените index.template.html файл в подкаталоге «Landing» —C:Program Файлы (x86) Microsoft Visual Studio 2019Enterprise MSBuild Microsoft VisualStudio v16.0 AppxPackage Landing (в зависимости от версии VS).
Комментарии:
1. Это работает на компьютере разработчика. Как мне это исправить при развертывании из Azure DevOps?
2. Для сообщества Visual Studio 2022 путь
C:Program FilesMicrosoft Visual Studio2022CommunityMsbuildMicrosoftVisualStudiov17.0AppxPackage
3. Учитывая, что это жестко запрограммировано в этом общесистемном файле, я просто собираюсь использовать скрипт для переименования их после того, как они будут упакованы.
Ответ №2:
Если вы используете конвейеры Azure для развертывания, вы можете добавить параметры в задачу 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».
И свойство Uri внутри файла .appinstaller будет корректно указывать на эту папку.
Ответ №3:
Для 2022 Professional файл выглядит следующим образом: C:Program Файлы Microsoft Visual Studio 2022 Professional Msbuild Microsoft VisualStudio v17.0AppxPackage Microsoft.AppxPackage.Цели