c#是否允许对不同的解决方案使用预处理器指令?

本文关键字:预处理 处理器 指令 解决方案 是否 | 更新日期: 2023-09-27 18:07:53

我们在Visual Studio中为c#提供了预处理器指令,例如:

#define CONDITION1
#if CONDITION1
    Console.WriteLine("Version1");
#else
    Console.WriteLine("Version2");
#endif

但是,如果我有一个库,并希望它以不同的方式编译不同的解决方案,我该怎么办?

例如,我想在solution1中#define CONDITION1,在solution2中#define CONDITION2,我该怎么做?

c#是否允许对不同的解决方案使用预处理器指令?

除非您正在分发原始c#项目以包含在几个解决方案中,否则您就不走运了。如果你走那条路,你会像使用其他#define一样使用它们。

大多数库都是作为预编译的源代码分发的,这意味着所有的#define都已经被处理过了。您必须退回到配置值(这正是应该处理此类行为的方式)。