Различные действия по сборке для отладочных и выпускных сборок в Visual Studio - PullRequest
5 голосов
/ 06 октября 2011

У меня есть это решение C # Visual Studio, которое реализует архитектуру плагинов. При создании отладочной сборки я хочу, чтобы пара плагинов была скомпилирована в основное приложение. При сборке сборки релиза я хочу, чтобы эти .cs-файлы были оставлены в покое.

Есть ли способ, которым я могу указать различные Действия сборки для файлов плагинов для отладочных и релизных сборок? Мне бы хотелось, чтобы в отладочной сборке было установлено значение «Компилировать» и «Нет» в сборке выпуска.

Ответы [ 2 ]

8 голосов
/ 06 октября 2011

Для этого вам нужно вручную изменить .csproj и добавить Condition XML-атрибут в элемент Compile XML, соответствующий файлу, который вы хотите использовать только в отладочных сборках.Как это:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
      ...
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
      ...
  </PropertyGroup>
  <ItemGroup>
    <!-- Add the Condition attribute here, on each of your debug only files
    Pick up one of the configuration definition configuration above -->
    <Compile Include="DebugOnlyClass1.cs" Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "/>
    <!-- normal compilation -->
    <Compile Include="Class1.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
     ...
</Project>
5 голосов
/ 06 октября 2011

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

Для проектов вы можете указать, следует ли встраивать конфигурацию или нет: в Visual Studio откройте Configuration Manager (меню сборки). В верхнем левом поле со списком выберите конфигурацию Release или Debug и установите флажки build в списке ad libitum.

Редактировать: В противном случае вам нужно отредактировать файл .csproj вручную и добавить атрибут условия к элементу, который вы хотите исключить:

<Compile Condition="'$(Configuration)' == 'Debug'" Include="Program.cs" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...