Исключить целые файлы на основе конфигурации из сборки в VS2008 - PullRequest
8 голосов
/ 03 марта 2010

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

Я ищу оператор #if MYCONFIG или #if DEBUG, но для файлов. Я уже читал, что это может быть достигнуто путем ручного редактирования файла csproj, но я больше не могу найти это ... и есть ли другие способы?

1 Ответ

12 голосов
/ 03 марта 2010

Есть два разных способа: В ваших файлах csproj у вас будут разделы, которые выглядят так:

<ItemGroup>
    <Compile Include="Helper.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

Что вы можете сделать, это настроить новую конфигурацию проекта ( Построить меню, Configuration Manager , выбрать Новый из Активная конфигурация решения раскрывающийся список), затем вручную измените узел ItemGroup на этот:

<ItemGroup Condition=" '$(Configuration)' == 'MyNewConfiguration' ">
    <Compile Include="Helper.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>

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

#if MYDEBUGSYMBOL

и внизу есть

#endif

тогда вы можете определить символы отладки; щелкните правой кнопкой мыши файл проекта, выберите Свойства , перейдите на вкладку Сборка и введите символ отладки в текстовом поле Условные символы компиляции .

Я бы, вероятно, придерживался первого метода.

...