有没有办法有条件地#define依赖中的符号?

时间:2012-06-08 16:58:47

标签: c# visual-studio-2010 conditional

我正在解决方案中,解决方案中有一个特定的库,通过#ifdef打开或关闭功能。

我在解决方案中有另一个项目,它将其用作依赖项。在我的构建设置中,我希望能够根据项目中的构建配置在依赖库中定义符号。我无法在Visual Studio中找到任何方法。

有没有办法实现这个目标?

(我知道这里理想的解决方案是将#ifdef更改为其他内容,但请假设我无法编辑其他项目中的代码)

2 个答案:

答案 0 :(得分:2)

项目选项中的

构建选项卡取决于构建配置下拉列表的选定值。您可以测试,当您选择Debug时,选中Define DEBUG常量,但不是Release模式。

只需选择适当的配置(Debug,Release或custom one)并设置条件编译符号的值。

答案 1 :(得分:1)

我认为你不能那样做。没有“解决方案级别”定义,所有定义都限定在项目范围内。

正如@archil所指出的,你可以通过为项目选择正确的配置来实现一些目标。

另一个选项可能是直接使用MSBuild构建项目而不是使用普通的VS IDE路由,这样您就可以通过命令行覆盖定义(http://stackoverflow.com/questions/479979/msbuild-defining -conditional编译符号)