Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Единый проект MSIX — это функция, которая позволяет создавать упакованное настольное приложение WinUI 3 без необходимости отдельного проекта упаковки. Приложение WinUI — это приложение, использующее платформу WinUI для пользовательского интерфейса; и использует Windows App SDK. Чтобы упаковать классическое приложение, которое не является приложением WinUI, см. статью Настройка настольного приложения для упаковки MSIX в Visual Studio.
Функция однопроектного MSIX доступна в качестве расширения для Visual Studio, которое можно использовать для следующих сценариев:
- Создайте новое настольное приложение WinUI, используя шаблон проекта Visual Studio Blank App, Packaged (WinUI in Desktop), который поставляется с Windows App SDK. Этот проект настроен для сборки приложения в пакет MSIX без необходимости отдельного проекта пакетирования.
- Измените существующее WinUI настольное приложение, использующее отдельный проект упаковки. Изменение включает удаление отдельного проекта упаковки, как показано на рисунке ниже.
Сравнение проекта упаковки с единичным проектом
Обзор
В этом разделе рассматриваются некоторые важные сведения о функции MSIX с одним проектом.
Льготы
ru-RU: Перед введением функции MSIX с одним проектом, если вы хотите создать упакованное настольное приложение WinUI, вам потребуется два проекта в решении — ваш проект приложения, а также дополнительный Проект упаковки приложений Windows (см. раздел Настройка вашего настольного приложения для упаковки MSIX в Visual Studio). Однопроектная функция MSIX позволяет разрабатывать и создавать приложение, используя только один проект для приложения. Это обеспечивает более чистую структуру проекта и более простой процесс разработки. Например, вам больше не нужно выбирать отдельный проект упаковки в качестве проекта запуска.
Поддерживаемые типы project
Функция MSIX для одного проекта поддерживает шаблоны WinUI в Visual Studio (C# и C++) для Windows App SDK.
Ограничения
Один проект MSIX поддерживает только один исполняемый файл в созданном пакете MSIX. Если вам нужно объединить несколько исполняемых файлов в один пакет MSIX, вам потребуется продолжить использование пакета приложений Windows Project в решении.
Установка средств упаковки MSIX для единого проекта
Средства однопроектной упаковки MSIX включают заготовки проектов Visual Studio, которые можно использовать для создания упакованных настольных приложений WinUI. Эти средства включены в расширение Windows App SDK для Visual Studio. Инструкции по установке Windows App SDK см. в разделе Install tools for the Windows App SDK.
Windows App SDK 0.8 и C# версии 1.0 Preview 3: Инструменты для упаковки MSIX с одним проектом не включены в расширение Windows App SDK для Visual Studio для версии Windows App SDK 0.8 или для проектов на C# вплоть до и включая Preview 3 Windows App SDK 1.0. Таким образом, если вы используете эти версии, возможно, вам придется явно установить средства упаковки MSIX для одного проекта. См. следующие сведения:
Visual Studio 2022 версии 17.1 и более поздних: Средства упаковки MSIX для одиночного проекта в виде расширения VSIX встроены в Visual Studio 2022 версий 17.1 и более поздних.
Visual Studio 2022 до версии 17.1: Установите расширение Single-project MSIX Packaging Tools для Visual Studio 2022 VSIX.
Чтобы подтвердить, что расширение установлено, щелкните Extensions>Manage Extensions>Installed>All и убедитесь, что Single-project MSIX Packaging Tools присутствуют в списке.
Создание проекта
Если вы используете Windows App SDK версии 1.0 Preview 2 или более поздней, вы можете создать новое приложение на основе WinUI, которое включает поддержку MSIX для одного проекта, просто с помощью шаблона Blank App, Packaged (WinUI in Desktop). Дополнительные сведения см. в разделе Create your first WinUI project.
Изменение существующего проекта
Выполните шаги, описанные в этом разделе, чтобы изменить существующее приложение на основе WinUI, использующее отдельный проект для упаковки. Шаги включают в себя перемещение манифеста пакета (и другой поддержки, необходимой для сборки пакета MSIX) в проект приложения, а затем удаление отдельного проекта упаковки.
Шаг 1: Создание или открытие существующего проекта упаковки
Если у вас уже есть решение для настольного приложения WinUI (см. шаблоны WinUI в Visual Studio), включающее проект упаковки для Windows Application Packaging Project (см. Set up your desktop application for MSIX packaging in Visual Studio), то откройте это решение в Visual Studio сейчас.
Если нет, создайте новое настольное приложение WinUI в Visual Studio с помощью шаблона Blank App, упакованное с помощью проекта упаковки приложений Windows (WinUI в настольных приложениях). Ваше решение будет выглядеть так же, как на снимке экрана ниже.
решение с использованием проекта пакетирования
Шаг 2. Изменение параметров приложения project
Затем измените некоторые параметры конфигурации, чтобы использовать функцию MSIX для одного проекта. Существуют различные инструкции в зависимости от типа project и версии Visual Studio.
В Solution Explorer дважды щелкните узел проекта приложения, чтобы открыть XML-редактор с файлом .csproj. Добавьте следующий XML-код в основной <элемент PropertyGroup> .
<EnableMsixTooling>true</EnableMsixTooling> <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>Когда все будет готово, элемент <PropertyGroup> должен выглядеть примерно так.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework> ... <UseWinUI>true</UseWinUI> <EnableMsixTooling>true</EnableMsixTooling> <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile> </PropertyGroup>Сохраните изменения и закройте CSPROJ-файл .
Выполните одну из следующих процедур в зависимости от версии Visual Studio.
For Visual Studio 2022 или более поздней версии:
В Solution Explorer щелкните правой кнопкой мыши папку Properties в узле project приложения и выберите Add>New Item... .
Выберите текстовый файл, назовите новый файл launchSettings.json и нажмите кнопку "Добавить". Убедитесь, что новый файл находится в папке Properties приложения project.
Скопируйте следующие параметры в новый файл. Вы можете изменить значения, необходимые для вашего сценария. Значение MyApp может быть любой строкой. Оно не должно соответствовать имени приложения.
{ "profiles": { "MyApp": { "commandName": "MsixPackage", "commandLineArgs": "", /* Command line arguments to pass to the app. */ "alwaysReinstallApp": false, /* Uninstall and then reinstall the app. All information about the app state is deleted. */ "remoteDebugEnabled": false, /* Indicates that the debugger should attach to a process on a remote machine. */ "allowLocalNetworkLoopbackProperty": true, /* Allow the app to make network calls to the device it is installed on. */ "authenticationMode": "Windows", /* The authentication scheme to use when connecting to the remote machine. */ "doNotLaunchApp": false, /* Do not launch the app, but debug my code when it starts. */ "remoteDebugMachine": "", /* The name of the remote machine. */ "nativeDebugging": false /* Enable debugging for managed and native code together, also known as mixed-mode debugging. */ } } }Сохраните и закройте файл launchSettings.json .
Шаг 3. Переместите файлы в проект приложения
Затем переместите несколько важных файлов в проект приложения. Существуют разные инструкции в зависимости от типа project.
- В File Explorer переместите папку Package.appxmanifest и файл Images из пакета project в project приложения. Поместите этот файл и папку на верхний уровень иерархии папок project приложения.
- В Visual Studio в Solution Explorer выберите все изображения в папке Images. В окне "Свойства" установите Параметр сборки в значение Содержимое.
- Удалите проект упаковки из вашего решения.
Шаг 4. Включение развертывания в Configuration Manager
- Выберите Build>Configuration Manager.
- В Configuration Manager установите флажок Deploy для каждой комбинации конфигурации и платформы (например, Debug и x86, Debug и arm64, Release и x64 и многое другое).
Примечание.
Не забудьте использовать раскрывающиеся списки Активная конфигурация решения и Активная платформа решения в верхней части вместо раскрывающихся списков Конфигурация и Платформа в той же строке, где находится флажок Развернуть.
Шаг 5. Развертывание приложения
Постройте и разверните ваш проект приложения. Visual Studio соберет ваше приложение в MSIX-пакет, установит пакет и запустит приложение.
Шаг 6. Упаковка приложения для публикации
Используйте команду «Упаковка и публикация» в Visual Studio для упаковки приложения и его публикации в Microsoft Store.
Автоматизация процесса создания и упаковки MSIX приложения с одним проектом
Вы можете использовать msbuild для создания и упаковки однопроектного приложения MSIX, что позволяет автоматизировать рабочий процесс. Метод для проектного решения с одним проектом и командной строкой немного отличается от того, что вы уже можете сделать, если у вас есть проектное решение с двумя проектами, один из которых включает Проект упаковки приложений Windows (см. раздел Настройка вашего настольного приложения для упаковки в MSIX в Visual Studio).
Важным параметром команды сборки для решения с одним проектом является /p:GenerateAppxPackageOnBuild=true. Без этого параметра проект будет собираться, но вы не получите пакет MSIX. Включите этот параметр и приведет к созданию пакета MSIX.
Существует полный пример в виде действия GitHub, которое создает однопроектное решение WinUI.
Примечание.
Однопроектное MSIX в настоящее время не поддерживает создание пакетов MSIX (см. Bundling MSIX packages). Он создает только один MSIX. Но вы можете упаковить файлы .msix в пакет MSIX с помощью пакета MSIX Bundler GitHub Action.
Как упакованое классическое приложение работает в Windows
Дополнительную информацию о том, что происходит с файлами и записями реестра при создании пакета приложения Windows для десктопного приложения, см. в статье Understanding how packaged desktop apps run on Windows.
Предоставление отзыва
Чтобы отправить нам отзыв, сообщить о проблемах или задать вопросы о функции MSIX с одним проектом, опубликуйте обсуждение или обращение в репозитории Windows App SDK GitHub.
Windows developer