Конфигурация проекта для приложений .NET MAUI

.NET MAUI использует систему с одним проектом для управления конфигурацией кроссплатформенного приложения. Конфигурация проекта в .NET MAUI аналогична другим проектам в Visual Studio, щелкните проект правой кнопкой мыши в Обозреватель решений и выберите "Свойства".

Приложение

В разделе "Приложение " описаны некоторые параметры, связанные с платформами, целевыми объектами приложения, а также выходным файлом и пространством имен по умолчанию.

  • Общие сведения

    Описание некоторых основных параметров приложения.

    Параметр Значение по умолчанию Description
    Имя сборки $(MSBuildProjectName) Определяет имя выходного файла, который будет содержать манифест сборки.
    Пространство имен по умолчанию Возможны разные варианты. Указывает базовое пространство имен для файлов, добавленных в проект. Обычно это значение по умолчанию соответствует имени проекта или значению, указанному при создании проекта.
  • Целевые объекты iOS

    Если вы собираетесь использовать iOS и macOS (с помощью Mac Catalyst), эти параметры описывают целевую версию iOS.

    Параметр Значение по умолчанию Description
    Целевая платформа iOS Флажок установлен Указывает, что этот проект будет нацелен на платформу iOS.
    Целевая платформа iOS net8.0-ios Моникер целевой платформы , используемый для назначения iOS.
    Минимальная целевая платформа iOS 14.2 Минимальная версия iOS для целевых объектов приложения.
  • Целевые объекты Android

    Если вы собираетесь нацелиться на Android, эти параметры описывают целевую версию Android.

    Параметр Значение по умолчанию Description
    Целевая платформа Android Флажок установлен При проверка проект .NET MAUI будет предназначен и создаст версию приложения Android. Отменить проверка отключить целевой объект Android.
    Целевая платформа Android Framework net8.0-android Моникер целевой платформы , используемый для назначения Android.
    Минимальная целевая платформа Android Framework 21.0 Минимальная версия android для целевых объектов приложения.
  • Целевые объекты Windows

    Если вы собираетесь использовать Windows, эти параметры описывают целевую версию Windows.

    Параметр Значение по умолчанию Description
    Целевая платформа Windows Флажок установлен При проверка проект .NET MAUI будет нацелен на версию вашего приложения и создает версию Windows. Отменить проверка отключить целевой объект Windows.
    Целевая платформа Windows Framework net8.0-windows10.0.19041.0 Моникер целевой платформы , используемый для целевых окон.
    Минимальная целевая платформа Windows Framework 10.0.17763.0 Минимальная версия Windows для целевых объектов приложения.

Сборка

В разделе "Сборка" описываются параметры, связанные с компиляцией приложения.

Общие

Параметры, связанные с целевыми платформами.

  • Символы условной компиляции

    Указывает символы для условной компиляции. Разделяйте символы с запятой ;. Символы можно разбить на целевые платформы. Дополнительные сведения см. в разделе "Условная компиляция".

  • Целевой объект платформы

    Указывает целевой процессор для выходного файла. Выберите Any CPU , чтобы указать, что любой процессор является приемлемым, что позволяет приложению работать на самом широком диапазоне оборудования.

    Обычно для Any CPU целевой платформы ЦП используется параметр идентификатора среды выполнения.

    Параметр Описание
    Any CPU (по умолчанию) Компилирует сборку для запуска на любой платформе. Если возможно, приложение выполняется как 64-разрядный процесс, а если доступен только 32-разрядный режим, переключается на него.
    x86 Компилирует сборку для запуска 32-разрядной среды выполнения x86, совместимой с X86.
    x64 Компилирует сборку для выполнения 64-разрядной среды выполнения на компьютере, поддерживающем набор инструкций AMD64 или EM64T.
    ARM32 Компилирует сборку для запуска на компьютере с процессором advanced RISC Machine (ARM).
    ARM64 Компилирует сборку для выполнения 64-разрядной среды выполнения на компьютере с процессором Advanced RISC Machine (ARM), поддерживающим набор инструкций A64.
  • Допускает значения NULL

    Указывает допускающий значение NULL контекст C# для всего проекта. Дополнительные сведения см. в разделе "Ссылки, допускающие значение NULL".

    Параметр Описание
    Не задано (по умолчанию) Если этот параметр не задан, используется Disableзначение по умолчанию.
    Disable Предупреждения о значении NULL отключены. Все переменные ссылочного типа являются ссылочными типами, допускающими значение NULL.
    Enable Компилятор включает весь анализ ссылок null и все функции языка.
    Warnings Компилятор выполняет весь анализ null и выдает предупреждения, когда код может разыменовыть значение NULL.
    Annotations Компилятор не выполняет анализ значений NULL или выдает предупреждения, когда код может разыменовыть значение NULL.
  • Неявные глобальные использование

    Позволяет объявлять неявные глобальные использование пакета SDK для проекта. Эта функция включена по умолчанию и импортирует многие пространства имен .NET MAUI автоматически во все файлы кода. Файлы кода не должны добавлять using инструкции для общих пространств имен .NET MAUI. Дополнительные сведения см. в свойствах MSBuild — ImplicitUsings.

  • Небезопасный код

    Разрешить коду, который использует unsafe ключевое слово для компиляции. Эта функция отключена по умолчанию.

  • Оптимизировать код

    Включите оптимизацию компилятора для небольших, быстрых и более эффективных выходных данных. Существует возможность для каждой целевой платформы в режиме отладки или выпуска. Как правило, это включено для режима выпуска, так как код оптимизирован для скорости за счет полезных сведений об отладке.

  • Отладочные символы

    Указывает тип отладочных символов, созданных во время сборки.

Ошибки и предупреждения

Параметры, связанные с обработкой ошибок и предупреждений во время компиляции.

  • Уровень предупреждений

    Указывает уровень предупреждений, выводимых компилятором.

  • Подавление определенных предупреждений

    Блокирует создание указанных предупреждений компилятором. Разделите несколько номеров предупреждений с запятой , или точкой с запятой ;.

  • Обрабатывать предупреждения как ошибки

    При включении компилятор указывает компилятору обрабатывать предупреждения как ошибки. Эта функция отключена по умолчанию.

  • Обработку определенных предупреждений как ошибок

    Указывает, какие предупреждения обрабатываются как ошибки. Разделите несколько номеров предупреждений с запятой , или точкой с запятой ;.

Выходные данные

Параметры, связанные с созданием выходного файла.

  • Базовый выходной путь

    Указывает базовое расположение выходных данных проекта во время сборки. Вложенные папки будут добавлены к этому пути для отличия конфигурации проекта.

    По умолчанию — .\bin\.

  • Базовый промежуточный выходной путь

    Указывает базовое расположение промежуточных выходных данных проекта во время сборки. Вложенные папки будут добавлены в путь для дифференцировки конфигурации проекта.

    По умолчанию — .\obj\.

  • Эталонная сборка

    При включении создается эталонная сборка, содержащая общедоступный API проекта. Эта функция отключена по умолчанию.

  • Файл документации

    При включении создается файл, содержащий документацию ПО API. Эта функция отключена по умолчанию.

События

В этом разделе можно добавить команды, которые выполняются во время сборки.

  • Событие предварительной сборки

    Задает команды, которые выполняются перед началом сборки. Не запускается, если проект обновлен. Код выхода, отличный от нуля, завершится сбоем сборки перед запуском.

  • Событие после сборки

    Задает команды, которые выполняются перед началом сборки. Не запускается, если проект обновлен. Код выхода, отличный от нуля, завершится сбоем сборки перед запуском.

  • Когда следует запустить событие после сборки

    Указывает, в каком условии будет выполняться даже после сборки.

Строгое именование

Параметры, связанные с подписью сборки.

  • Подписывая сборку

    При включении подписывает выходную сборку, чтобы дать ему строгое имя.

Дополнительно

Дополнительные параметры, связанные с сборкой.

  • Версия языка

    Версия языка, доступного для кода в проекте. По умолчанию — 10.0.

  • Проверка арифметического переполнения

    Создает исключения, когда целочисленное арифметическое создает значения из диапазона. Этот параметр доступен для каждой платформы. Значение по умолчанию отключено для каждой платформы.

  • Детерминированное

    Создание идентичных выходных данных компиляции для идентичных входных данных. Этот параметр доступен для каждой платформы. Значение по умолчанию включено для каждой платформы.

  • Отчеты об ошибках внутреннего компилятора

    Отправка отчетов об ошибках внутреннего компилятора в корпорацию Майкрософт. По умолчанию — Prompt before sending.

  • Выравнивание файлов

    Задает выравнивание размеров выходного файла в байтах. Этот параметр доступен для каждой платформы. Значение по умолчанию используется 512 для каждой платформы.

Пакет

В разделе "Пакет" описаны параметры, связанные с созданием пакета NuGet.

Общие

Параметры, связанные с созданием пакета NuGet.

  • Создание пакета NuGet при сборке

    При включении создается файл пакета NuGet во время операций сборки. Эта функция отключена по умолчанию.

  • Идентификатор пакета

    Идентификатор пакета без учета регистра, который должен быть уникальным в коллекции пакетов NuGet, например nuget.org. Идентификаторы могут не содержать пробелы или символы, недопустимые для URL-адреса, и обычно следуйте правилам пространства имен .NET.

    По умолчанию используется значение $(AssemblyName)MSBuild.

  • Заголовок

    Понятный заголовок пакета, обычно используемый при отображении пользовательского интерфейса, как на сайте nuget.org и в диспетчере пакетов Visual Studio.

  • Версия пакета

    Версия пакета, следующая за шаблоном major.minor.patch . Номера версий могут включать суффикс предварительной версии.

    По умолчанию используется значение $(ApplicationDisplayVersion)MSBuild.

  • Авторы

    Разделенный запятыми список авторов, соответствующий именам профилей на nuget.org. Они отображаются в коллекции NuGet на nuget.org и используются для перекрестной ссылки на пакеты теми же авторами.

    По умолчанию используется значение $(AssemblyName)MSBuild.

  • Компания

    Имя компании, связанной с пакетом NuGet.

    По умолчанию используется значение $(Authors)MSBuild.

  • Продукт

    Имя продукта, связанного с пакетом NuGet.

    По умолчанию используется значение $(AssemblyName)MSBuild.

  • Description

    Описание пакета для отображения пользовательского интерфейса.

  • Авторское право

    Сведения об авторских правах для пакета.

  • URL-адрес проекта

    URL-адрес для домашней страницы пакета, часто указываемый при отображении пользовательского интерфейса, также как и nuget.org.

  • Значок

    Изображение значка пакета. Размер файла изображения ограничен 1 МБ. Поддерживаемые форматы файлов включают JPEG и PNG. Рекомендуется разрешение изображения 128x128.

  • README

    Документ README для пакета. Должен быть файлОм Markdown (.md).

  • URL-адрес репозитория

    Указывает URL-адрес репозитория, где находится исходный код для пакета или откуда выполняется его сборка. Для связывания со страницей проекта используйте вместо этого поле "URL-адрес проекта".

  • Тип репозитория

    Указывает тип репозитория. Значение по умолчанию — git.

  • Теги

    Список тегов и ключевое слово с запятой, описывающий пакет и помогающий обнаруживать пакеты с помощью поиска и фильтрации.

  • Заметки о выпуске

    Описание изменений, внесенных в выпуск пакета, часто используемых в пользовательском интерфейсе, например на вкладке Обновления visual Studio диспетчер пакетов вместо описания пакета.

  • Упаковка в виде средства .NET

    При включении упаковывает проект в виде специального пакета, содержащего консольное приложение, которое может быть установлено с помощью команды dotnet tool. Эта функция отключена по умолчанию.

  • Путь вывода пакета

    Определяет выходной путь, в котором будет удален пакет.

    По умолчанию используется значение $(OutputPath)MSBuild.

  • Нейтральный язык сборки

    Какой языковой код считается нейтральным языком. По умолчанию не задано.

  • Версия сборки

    Версия сборки по умолчанию используется, 1.0.0.0 если она не задана.

  • Версия файла

    Версия, связанная с файлом, по умолчанию используется, 1.0.0.0 если она не задана.

Лицензия

  • Лицензия на пакет

    Укажите лицензию для пакета проекта. По умолчанию — None.

  • Символы

    • Создание пакета символов

      При включении создается дополнительный пакет символов при пакете проекта. Эта функция отключена по умолчанию.

Анализ кода

Параметры, связанные с анализом кода.

Все анализаторы

Параметры, связанные с запуском анализа.

  • Запуск в сборке

    При включении выполняется анализ кода при сборке. Значение по умолчанию включено.

  • Запуск в динамическом анализе

    При включении выполняется анализ кода в редакторе при вводе. Значение по умолчанию включено.

Анализ .NET

Параметры, связанные с анализаторами .NET.

  • Принудительное применение стиля кода для сборки (экспериментальный)

    При включении создается диагностика о стиле кода при сборке. Эта функция отключена по умолчанию.

  • Включение анализаторов .NET

    При включении выполняет анализаторы .NET для поддержки использования API. Значение по умолчанию включено.

  • Уровень анализа

    Набор анализаторов, которые должны выполняться в проекте. По умолчанию — Latest. Дополнительные сведения см. в статье MSBuild: AnalysisLevel.

Общий доступ MAUI

Это параметры проекта для .NET MAUI, которые совместно используются на всех целевых платформах.

Общие

Общие параметры, связанные с .NET MAUI.

  • Название приложения

    Отображаемое имя приложения.

  • Идентификатор приложения

    Идентификатор приложения в обратном формате доменного имени, например: com.microsoft.maui

  • Идентификатор приложения (GUID)

    Идентификатор приложения в формате GUID.

  • Версия отображения приложения

    Версия приложения. Это должно быть однозначное целое число. По умолчанию — 1.

Android

Это параметры .NET MAUI для Android.

манифеста

Параметры, связанные с манифестом Android.

  • Имя приложения

    Строка, отображаемая в качестве имени приложения. Это имя, отображаемое в строке заголовка приложения. Если не задано, метка MainActivity приложения используется в качестве имени приложения. Параметр по умолчанию , который ссылается @string/app_nameна расположение строкового ресурса app_name в Resources/values/Strings.xaml.

  • Имя пакета приложения

    Строка, используемая для уникальной идентификации приложения. Как правило, имя пакета основано на соглашении об обратном домене интернета, например com.company.appname.

  • Значок приложения

    Указывает ресурс значка приложения, который будет отображаться для приложения. @drawable/icon Параметр ссылается на файл icon.png изображения, расположенный в папкеResources/mipmap.

  • Тема приложения

    Задает стиль пользовательского интерфейса, применяемый ко всему приложению. Каждое представление в приложении применяется к атрибутам стиля, определенным в выбранной теме.

  • Номер версии приложения

    Целочисленное значение больше нуля, определяющее номер версии приложения. Более поздние версии указывают на более поздние версии. Это значение вычисляется программным способом Android и другими приложениями, оно не отображается пользователям.

  • Имя версии приложения

    Строка, указывающая версию приложения пользователям. Имя версии может быть необработанной строкой или ссылкой на строковый ресурс.

  • Расположение установки

    Указывает, где должно храниться приложение, независимо от того, должно ли храниться внутреннее или внешнее хранилище.

    Параметр Описание
    Internal-only (по умолчанию) Указывает, что приложение не может быть установлено или перемещено в внешнее хранилище.
    Prefer external Указывает, что приложение должно быть установлено во внешнем хранилище, если это возможно.
    Prefer internal Указывает, что приложение должно быть установлено во внутреннем хранилище, если это возможно.
  • Минимальная версия Android

    Самый старый уровень API устройства Android, который может установить и запустить приложение. Также называется minSdkVersion.

  • Целевая версия Android

    Целевой уровень API устройства Android, где приложение ожидает выполнения. Этот уровень API используется во время выполнения, в отличие от Целевой платформы, которая используется во время сборки. Android использует эту версию в качестве способа обеспечения совместимости пересылки. Кроме того targetSdkVersion, это должно соответствовать Целевой платформе compileSdkVersion.

Параметры

Другие варианты создания приложения Android.

  • Формат пакета Android

    Либо apk или bundle, который упаковыв приложение Android в виде APK-файла или пакета приложений Android соответственно. Это можно задать отдельно для режимов отладки и выпуска.

    Пакеты приложений — это последний формат для сборок выпусков Android, предназначенных для отправки в Google Play.

    Значение по умолчанию: apk.

    При bundle выборе задаются другие свойства MSBuild:

    • AndroidUseAapt2 задан как True.
    • AndroidUseApkSigner задан как False.
    • AndroidCreatePackagePerAbi задан как False.
  • Быстрое развертывание (только режим отладки)

    При включении развертывает приложение быстрее, чем обычно, на целевом устройстве. Этот процесс ускоряет цикл сборки, развертывания и отладки, так как пакет не переустановлен при изменении только сборок. C целевым устройством повторно синхронизируются только обновленные сборки.

    Эта функция включена по умолчанию.

  • Создание на ABI

    При включении создается один пакет Android (apk) для каждого выбранного двоичного интерфейса приложения (ABI). Эта функция отключена по умолчанию.

  • Использование добавочной упаковки

    При включении использует добавочную систему упаковки Android (aapt2). Эта функция включена по умолчанию.

  • Multi-dex

    Если этот параметр включен, система сборки Android позволяет использовать multidex. По умолчанию — отключен.

  • Сжатие кода

    Выбирает используемый сжатий кода.

    • ProGuard (по умолчанию) считается устаревшим сжатием кода.
    • r8 — это средство следующего поколения, которое преобразует код байтов Java в оптимизированный код dex.
  • Несжатые ресурсы

    Оставляет указанные расширения ресурсов незапечатанными. Разделите расширения с точкой с запятой ;. Например: .mp3;.dll;.png.

  • Инструментирование разработчика

    При включении инструментирование разработчика предоставляется для отладки и профилирования. Это можно задать для отдельных режимов отладки и выпуска.

    Значение по умолчанию включено для сборок отладки.

  • Debugger

    Выбирает отладчик для использования. Значение по умолчанию .NET (Xamarin)используется для управляемого кода. Отладчик C++ можно выбрать для отладки собственных библиотек, используемых приложением.

  • AOT

    Включает компиляцию в преддверии времени (AOT). Это можно задать для отдельных режимов отладки и выпуска.

    Значение по умолчанию включено для сборок выпуска.

  • LLVM

    Включает компилятор оптимизации LLVM. По умолчанию — отключен.

  • Трассировка запуска

    Включает трассировку запуска. Это можно задать для отдельных режимов отладки и выпуска.

    Значение по умолчанию включено для сборок выпуска.

  • Сборка мусора

    При включении используется одновременный сборщик мусора. Значение по умолчанию включено.

  • Включение обрезки

    При включении обрезает приложение во время публикации. Это можно задать для отдельных режимов отладки и выпуска. Дополнительные сведения см. в разделе "Обрезка автономных развертываний" и исполняемых файлов и параметров обрезки.

    Значение по умолчанию включено для сборок выпуска.

  • Обрезка детализации

    Определяет, насколько агрессивно IL не карта. Выбор из двух режимов:

    • Link включает обрезку на уровне члена, которая удаляет неиспользуемые элементы из типов.
    • CopyUsed (по умолчанию) включает обрезку на уровне сборки, которая сохраняет всю сборку при использовании какой-либо части.
  • Размер максимальной кучи Java

    Задайте это значение, чтобы увеличить размер памяти, которую может использовать приложение. Например, значение 2G увеличивает размер кучи до 2 гигабайт. Обратите внимание, что нет гарантии того, насколько большая куча будет, и запрос слишком большого объема кучи памяти может привести к преждевременному прекращению работы других приложений.

    Значение по умолчанию — 1G.

  • Дополнительные параметры Java

    Указывает дополнительные параметры командной строки для передачи компилятору Java при создании dex-файла . В командной строке можно ввести java -help доступные параметры.

Подписывание пакета

При включении подписывает знак . APK-файл с помощью сведений о хранилище ключей. Эта функция отключена по умолчанию.

iOS

Это параметры MAUI для .NET для iOS.

Сборка

Параметры, связанные с созданием приложения iOS.

  • Поведение компоновщика

    Компоновщик может удалить неиспользуемые методы, свойства, поля, события, структуры и даже классы, чтобы уменьшить общий размер приложения. Вы можете добавить атрибут к Preserve любому из этих элементов, чтобы предотвратить удаление компоновщика, если это необходимо для сериализации или отражения.

    Предупреждение

    Включение этой функции может препятствовать отладке, так как она может отключать методы доступа к свойствам, позволяющие проверять состояние объектов.

    Доступные параметры описаны ниже.

    • Don't link
    • Link Framework SDKs only (по умолчанию)
    • Link All
  • LLVM

    При включении использует оптимизированный компилятор LLVM. Это можно задать для отдельных режимов отладки и выпуска.

    Значение по умолчанию включено для сборок выпуска.

  • Операции с плавающей запятой

    Выполняет все 32-разрядные операции с плавающей запятой как 64-разрядные операции с плавающей запятой.

  • Символы

    При включении отключает собственные символы отладки из выходных данных. Эта функция включена по умолчанию.

  • Сборщик мусора

    При включении используется одновременный сборщик мусора. Эта функция отключена по умолчанию.

  • Дополнительные аргументы

    Дополнительные аргументы командной строки, передаваемые в код bundling приложения.

  • Оптимизация

    При включении оптимизирует изображения PNG . Эта функция включена по умолчанию.

Подписывание пакета

Эти параметры связаны с созданием и подписыванием пакета приложений.

  • Схема

    Настраивает схему подписывания для пакета. Для него можно задать одно из следующих значений:

    • Manual provisioning: с этим значением вы будете отвечать за настройку профилей подготовки и подписывания сертификатов самостоятельно.
    • Automatic provisioning: (по умолчанию) С этим значением Visual Studio устанавливает профили подготовки и сертификаты подписи для вас, что упрощает развертывание приложений при тестировании на устройстве.
  • Удостоверение подписывания

    Удостоверение подписывания — это пара сертификатов и закрытых ключей, которая используется для пакета приложений для подписывания кода с помощью служебной программы codesign Apple.

    • Developer (automatic) (по умолчанию)
    • Distribution (automatic)
  • Профиль подготовки

    Профили подготовки — это способ объединения команды разработчиков с идентификатором приложения и, возможно, списком тестовых устройств. Список профилей подготовки фильтруется, чтобы отобразить только профили подготовки, соответствующие выбранному удостоверению и идентификатору приложения (идентификатору пакета aka) в списке Info.plist. Если нужный профиль подготовки отсутствует в списке, убедитесь, что вы выбрали совместимое удостоверение и двойное проверка правильность идентификатора пакета в info.plist.

  • Пользовательские права

    PLIST-файл, используемый для прав. Дополнительные сведения см. в разделе "Права".

  • Пользовательские правила ресурсов

    Plist-файл, содержащий пользовательские правила, используемые служебной программой codesign Apple.

    Примечание.

    По состоянию на Mac OSX 10.10 Apple не рекомендует использовать пользовательские правила ресурсов. Таким образом, этот параметр следует избегать, если это не обязательно.

  • Дополнительные аргументы

    Дополнительные аргументы командной строки, передаваемые в служебную программу codesign Apple во время этапа подписи кода сборки.

Отладка

Это параметры, связанные с отладкой.

  • Отладка

    Если этот параметр включен, включите отладку. Значение по умолчанию основано на текущем профиле. Профили отладки позволяют выполнять отладку, а профили выпуска отключают отладку.

  • Профилирование

    Если этот параметр включен, включите профилирование.

Параметры IPA

При включении создается архив пакетов iTunes (IPA).

Ресурсы по запросу

Параметры, связанные с ресурсами по запросу. Дополнительные сведения см. в документации разработчика Apple — ресурсы по запросу.

  • Начальные теги

    Теги ресурсов по запросу, скачанные одновременно с приложением, скачиваются из магазина приложений. Разделите теги с точкой с запятой ;.

  • Предварительный выбор заказа

    Теги ресурсов по запросу, скачанные после установки приложения. Разделите теги с точкой с запятой ;.

  • Внедрить

    При включении внедряет ресурсы по запросу в пакет приложений. Эта функция включена по умолчанию. Отключите этот параметр для использования веб-сервера.

  • Web server

    Универсальный код ресурса (URI) веб-сервера, на котором размещаются ресурсы по запросу.

Параметры выполнения

Параметры, связанные с запуском приложения на устройстве iOS или macOS.

  • Режим выполнения

    Этот параметр определяет, как приложение выполняется на целевом устройстве.

  • Начальные аргументы

    Дополнительные аргументы командной строки, передаваемые приложению при запуске на устройстве.

  • Дополнительные аргументы mlaunch

    Дополнительные аргументы командной строки, передаваемые в mlaunch.

  • Переменные среды

    Пары "Имя-значение" переменных среды, заданные при запуске приложения на устройстве.