Есть ли свойство MSBuild, которое показывает, что мы находимся в публикации? - PullRequest
3 голосов
/ 06 июня 2011

Я хочу условно отменить DEBUG, если это сборка для публикации.

есть ли свойство, которое я могу проверить, чтобы увидеть, публикуем ли мы в данный момент?

Ответы [ 3 ]

3 голосов
/ 06 июня 2011

Вы можете подключить свою собственную цель, чтобы установить свойство, от которого затем можно будет определять поведение, или делать все, что вы хотите.В приведенной ниже модификации проекта показано, как подключиться к существующим целевым зависимостям публикации с собственными до и после цели.Цель 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>
1 голос
/ 09 декабря 2016
<Copy SourceFiles="Web.Base.config" DestinationFiles="Web.config" OverwriteReadOnlyFiles="True" Condition="!('$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' == '')" />

Это будет выполнять «Копирование», только когда сборка использует флаг PublishProfile.

http://sedodream.com/2013/01/06/commandlinewebprojectpublishing.aspx

1 голос
/ 06 июня 2011
<Choose>
      <When Condition="'$(BuildType)' == 'publish'">
         <PropertyGroup>
           <DefineConstants>Release</DefineConstants>
         </PropertyGroup>
      </When>      
</Choose>

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

Что мы делаем на нашем месте, так это на самом деле публикация, отладка и выпуск.Мы создали публикацию, скопировав ее из выпуска, чтобы в ней были все настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...