【问题标题】:Where to specify preprocessor directives in visual studio?在 Visual Studio 中在哪里指定预处理器指令?
【发布时间】:2015-05-20 13:12:01
【问题描述】:

尝试在 Visual Studio 2012 中定义预处理器指令。

#define FLAG
....
#endif

但不确定,在 Visual Studio - C# 中的何处包含此 FLAG。我记得在 C++ 项目中指定了类似的内容。

有什么想法吗?

【问题讨论】:

标签: c# visual-studio-2012


【解决方案1】:

您有两个选择来定义它:

  1. 代码文件级别 - 在文件开头写入#define FLAG。您不能在 define 指令之前放置任何其他内容(除了 cmets 和空行)。正如 Ron Beyer 指出的那样,文件中定义的指令仅针对该文件存在

  2. 项目级别 - 在解决方案资源管理器中右键单击项目,选择Properties,然后选择Build 选项卡,然后查看Conditional compilation symbols。然后可以在那里定义几个逗号分隔的符号,例如:FLAG,FOO,BAR。请注意,此符号列表取决于项目配置(同一选项卡中有一个配置选择器)。


请注意,如 cmets 中所述,define 在 C# 中的工作方式与在 C 中的工作方式不同。在 C# 中,您只需声明符号存在,但不能为其分配值。因此,这些符号的唯一用途是用于#if FLAG 指令和the Conditional attribute

【讨论】:

  • 您应该注意,在代码文件级别定义它仅定义该代码文件的标志,它不会在项目范围内进行。它与 C++ 的工作方式不同。
  • 另请注意,您不能为这些定义指定。您只能指定定义本身。
  • 如果您在项目级别定义它,VS 在哪里存储该信息?我在 .csproj 或 .sln 文件中找不到它,而且我似乎无法删除它
  • @mcmillab 它在 \Project\PropertyGroup\DefineConstants 下的 .csproj 中
【解决方案2】:

由于某种原因,当点击属性时,我什么也没发生。所以我做了以下。它奏效了。

使用文本编辑器打开您的 csproj 项目文件,并在它们之间添加您的预处理器编译器指令。 这里!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2014-03-09
    相关资源
    最近更新 更多