在C#中,您可以通过使用类似于C/C++语法的宏来进行条件编译。这将使以下内容成为可能:
#define MYMACRO
....
#if MYMACRO
//some C# code logic
#else
//some other C# code logic
我需要在C#库项目中的专用文件中定义一些宏,并且当定义后,我需要使这些宏可在整个库内可见。问题是上述代码仅适用于单个文件。
我知道另一种解决方法是将宏添加到构建命令中。这将确保为整个.dll定义宏,我将拥有#if-#else检查,无论我想要在库内何处使用。但是,这种方法存在问题:我想要轻松维护这些宏。它们位于项目内部的文件中将是完美的。我也想在其中添加一些注释,以便我知道每个宏的作用。如果我必须将宏作为构建参数传递,则这将不适用。另一个原因是可以通过对其进行注释并检查行为来简单地打开/关闭宏。
有没有合适的方法来满足我的要求?我希望不必处理任何构建自动化工具,例如MSBuild、NAnt或类似工具,但如果没有其他方法,我会感激一个建议,您认为哪种更好选择。