Вы можете подключить свою собственную цель, чтобы установить свойство, от которого затем можно будет определять поведение, или делать все, что вы хотите.В приведенной ниже модификации проекта показано, как подключиться к существующим целевым зависимостям публикации с собственными до и после цели.Цель before устанавливает свойство.Затем в существующей части вашего проекта, где DEBUG определен в свойстве $ (DefineConstants), вы условно решаете, добавлять ли DEBUG в список констант или нет, основываясь на свойстве, которое вы устанавливаете при выполнении сборки из-заПубликация.
<PropertyGroup>
<PublishDependsOn>MyBeforePublish;$(PublishDependsOn);MyAfterPublish</PublishDependsOn>
</PropertyGroup>
<Target Name="MyBeforePublish">
<PropertyGroup>
<DetectPublishBuild>true</DetectPublishBuild>
</PropertyGroup>
</Target>
<Target Name="MyAfterPublish">
<PropertyGroup>
<DetectPublishBuild>false</DetectPublishBuild>
</PropertyGroup>
</Target>
...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<DefineConstants
Condition="'$(DetectPublishBuild)' != 'true'"
>DEBUG;$(DefineConstants)</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>