Условно компилирующие все пространства имен - C#

Я задавался вопросом, существует ли способ условно скомпилировать все пространства имен в C#. Или меня оставляют с необходимостью явно украсить каждый исходный файл в пространстве имен с директивами препроцессору для исключения его? В подверсиях моего приложения просто не требуется код в различном пространстве имен, и я хотел бы исключенный.

Заранее спасибо!

9
задан Filip K 7 April 2010 в 03:42
поделиться

3 ответа

Если ваше пространство имен находится в отдельной сборке, которая не содержит ничего другого, вы можете использовать Configuration Manager для своей конкретной подверсии и снять флажок «Сборка».

Если у вас есть другие классы в сборке, хотя они явно не будут построены или включены, то единственный способ - украсить их объявлениями препроцессора.

4
ответ дан 4 December 2019 в 23:05
поделиться

Вы можете сделать это, украсив каждый файл, или выбрать, какие файлы включить. И MSBuild, и csc имеют опции для включения всех файлов по пути, а MSBuild дополнительно имеет возможность условно включать элементы сборки на основе атрибута (вместо того, чтобы требовать отдельный csproj для каждой конфигурации).

Но, вероятно, проще украшать файлы напрямую ;-p

1
ответ дан 4 December 2019 в 23:05
поделиться

Вам нужно будет поместить директиву условной компиляции в каждый файл. Невозможно пометить все пространство имен как условно скомпилированное.

Как Майкл отмечает в своем ответе , возможное решение состоит в том, чтобы выделить условный код в отдельный проект (сборку) и отправить эту сборку только для конфигураций, которые этого требуют; но это будет зависеть от природы условного кода.

1
ответ дан 4 December 2019 в 23:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: