C# 如何在自定义生成配置中使用预处理器符号?

C# 如何在自定义生成配置中使用预处理器符号?,c#,visual-studio-2013,c-preprocessor,C#,Visual Studio 2013,C Preprocessor,我想创建一个构建配置,启用发布模式,但需要一些日志记录。我曾设想它与预处理器符号一起工作。例如,如果您说if DEBUG,那么它只会在构建处于DEBUG状态时编译代码块。我创建了一个名为ReleaseWithLogging的自定义构建,但预处理器无法识别它 有可能实现我的要求吗?如果有,如何实现?或者更好的方法是,使用ConditionalAttribute,而不是使用符号,在项目上单击鼠标右键,然后选择“属性” 在左侧选择Build选项卡选项 在右侧的条件编译符号字段中输入ReleaseWit

我想创建一个构建配置,启用发布模式,但需要一些日志记录。我曾设想它与预处理器符号一起工作。例如,如果您说if DEBUG,那么它只会在构建处于DEBUG状态时编译代码块。我创建了一个名为ReleaseWithLogging的自定义构建,但预处理器无法识别它


有可能实现我的要求吗?如果有,如何实现?或者更好的方法是,使用ConditionalAttribute,而不是使用符号,在项目上单击鼠标右键,然后选择“属性”

在左侧选择Build选项卡选项

在右侧的条件编译符号字段中输入ReleaseWithLogging符号

实际上,您只为需要的配置输入此符号定义。因此,当您在顶部选择Release作为配置时,您可以设置符号。当您在配置中选择Debug时,您可以忽略它

然后在你的代码里

#if ReleaseWithLogging

…将传递给定义符号的配置。根据您的描述,我假设您只会使用Logging config为新的自定义版本定义它。

右键单击您的项目并选择属性

在左侧选择Build选项卡选项

在右侧的条件编译符号字段中输入ReleaseWithLogging符号

实际上,您只为需要的配置输入此符号定义。因此,当您在顶部选择Release作为配置时,您可以设置符号。当您在配置中选择Debug时,您可以忽略它

然后在你的代码里

#if ReleaseWithLogging

…将传递给定义符号的配置。根据您的描述,我假设您只会使用Logging config为新的自定义版本定义它。

不确定您对创建的自定义版本XXX的确切含义,但假设您在“项目属性”->“版本”中更改了条件编译符号,则不清楚为什么不进行更改。您可能需要澄清您做了什么/如何运行build。不确定您对创建的自定义build XXX的确切含义,但假设您在project properties->build中更改了条件编译符号,则不清楚为什么不接受这些更改。您可能需要澄清您做了什么/如何运行build。我认为ReleaseWithLogging是他创建的新配置的名称,而不是预处理器符号的名称。是的,但我认为他需要在添加ReleaseWithLogging作为新配置的新符号,以便使if仅适用于该配置。也许我在回答中没有说清楚。我认为ReleaseWithLogging是他创建的新配置的名称,而不是预处理器符号的名称。是的,但我认为他需要在添加ReleaseWithLogging作为新配置的新符号,以便对该配置使用if。也许我在回答中没有说清楚。