Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpPjCd 400 of 509 menu
◀ ▶

Условная секция csproj в C#

В MSBuild атрибут Condition включает свойство или элемент только когда выражение истинно. Так для Debug и Release задают разные константы или ссылки.

Символ DEBUG из DefineConstants попадает в директивы #if в исходниках той же конфигурации.

Пример разных констант по конфигурации:

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net10.0</TargetFramework> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)'=='Debug'"> <DefineConstants>DEBUG;TRACE</DefineConstants> </PropertyGroup> </Project>

В коде ветка под символ DEBUG:

#if DEBUG Console.WriteLine(1); #else Console.WriteLine(0); #endif

При сборке Debug символ объявлен, при Release без символа ветка пуста. Условие в csproj и ветка #if должны относиться к одной и той же конфигурации.

Для сборки Release выведите в консоль "ship", для любой другой сборки выведите "dev".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить