【问题标题】:Does C# allow Preprocessor Directive for different SolutionsC# 是否允许针对不同解决方案的预处理器指令
【发布时间】:2016-09-21 03:09:47
【问题描述】:

我们在 Visual Studio for c# 中有预处理器指令,例如:

#define CONDITION1

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

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

比如我想在solution1中#define CONDITION1,在solution2中#define CONDITION2,怎么办?

【问题讨论】:

  • 也许this post 是一个选项。在项目级别(不是解决方案级别),您可以定义一个符号,然后您可以检查该符号是否存在以了解您所在的项目。

标签: c# visual-studio


【解决方案1】:

除非您分发原始 C# 项目以包含在多个解决方案中,否则您将不走运。如果你要走这条路,你会像使用其他任何#define 一样使用它们。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 2011-10-03
    • 2011-07-02
    • 1970-01-01
    相关资源
    最近更新 更多