尝试在 C# 中简化条件编译的步骤

Posted

技术标签:

【中文标题】尝试在 C# 中简化条件编译的步骤【英文标题】:Trying to simplify the steps for Conditional Compilation in C# 【发布时间】:2012-04-03 15:37:59 【问题描述】:

背景:

我要做的是根据我在给定时间点所需的配置集在 VS2008 IDE 中为我的项目自定义构建过程。

我的项目有一些条件方法,例如 [Conditional("FULLFEATURE")] 或 [Conditional("LESSFEATURE")] 仅当我在 Build 中提及 FULLFEATURE 或 LESSFEATURE 条件编译符号时才执行项目属性。

这种方法很费力,因为每次我必须通过(VSNET IDE)编译时,我必须根据我的要求手动添加编译符号。

问题

有没有办法可以避免这种情况(为每个功能维护两个不同的项目副本,不,我不想要这种方法)?

有没有办法通过配置管理器,我可以从中选择一个

FULLFEATURE --> Debug ---> x86
FULLFEATURE --> Debug ---> AnyCPU
FULLFEATURE --> Release ---> x86
FULLFEATURE --> Release ---> AnyCPU


LESSFEATURE --> Debug ---> x86
LESSFEATURE--> Debug ---> AnyCPU
LESSFEATURE--> Release ---> x86
LESSFEATURE--> Release ---> AnyCPU  

构建我需要的任何配置。 我知道如果我有更多的条件编译符号,这种方法会变得很糟糕。但我在这里..

欢迎任何建议

干杯

【问题讨论】:

为什么不能使用配置管理器来创建四个独立的构建配置? 我之前使用MSBUILD 脚本完成了此操作,该脚本设置条件、编译、更改条件、编译到不同的输出目录。 @Boo : 我知道我们可以使用 MSBUILD 做到这一点,这就是我特别提到 VS2008 IDE 的原因 【参考方案1】:

构建 + 配置管理器。使用左上角标有“活动解决方案配置”的组合框并选择New...。键入新名称。项目+属性,构建选项卡并设置您的条件。现在,每个配置都有自己的条件。

您现在只需使用工具栏上的配置选择器在配置之间切换,并根据需要进行构建/调试。

【讨论】:

非常感谢.. 虽然我试过了,但我认为更改构建配置会覆盖旧配置。我真傻。!

以上是关于尝试在 C# 中简化条件编译的步骤的主要内容,如果未能解决你的问题,请参考以下文章

条件编译在 C# 中的行为不正确

C# 条件编译 (#if 和 Conditional)

C# 条件编译 (#if 和 Conditional)

C# 条件编译 (#if 和 Conditional)

C#-#define条件编译

C#-C#-#define条件编译