В C# вы можете иметь условную компиляцию с помощью макросов, аналогичных синтаксису C/C++. Это позволило бы следующее произойдет:Могу ли я иметь глобальные определения препроцессора в библиотеке C#?
#define MYMACRO
....
#if MYMACRO
//some C# code logic
#else
//some other C# code logic
мне нужно определить некоторые макросы в выделенном файле в библиотеке проекта C#, и мне нужны эти макросы, чтобы быть видимым внутри всей библиотеки, когда определены. Проблема в том, что приведенный выше код работает только для одного файла.
Другим способом, который я знаю, чтобы обойти это, является добавление макросов в команду сборки. Это позаботится о том, чтобы определить макросы для всего .dll
, и у меня будут проверки #if - #else
, где бы я ни захотел внутри библиотеки. Проблемы с этим подходом состоят в том, что я хочу иметь возможность легко поддерживать макросы. Наличие их в файле внутри проекта будет идеальным. Я тоже хотел бы иметь некоторые комментарии внутри, чтобы я знал, что делает каждый макрос. Это не применимо, если мне нужно передать макросы в качестве параметров сборки. Другая причина заключается в том, чтобы включить/выключить макрос, просто комментируя его и исследуя поведение.
Есть ли достойный способ достичь моего требования? Я бы предпочел не заниматься любыми инструментами автоматизации построения, такими как MSBuild
, NAnt
или что-то в этом роде, если бы не было другого способа, я бы по достоинству оценил совет, который вы считаете лучшим выбором.
Вы можете добавить файл csproj .... –
Do вы имеете в виду, как строить параметры? Если это то, что вы имеете в виду, я уже говорил, что сейчас я не удовлетворен этим подходом. Если нет, я был бы рад, если бы вы поделились дополнительной информацией о том, как это сделать. Спасибо –
Почему вы используете так много условных символов компиляции (это то, что они называются, они не являются «макросами»)? Возможно, есть и другой способ сделать то, что вы хотите. – svick