有没有办法有条件地#define 依赖项中的符号?
Posted
技术标签:
【中文标题】有没有办法有条件地#define 依赖项中的符号?【英文标题】:Is there a way to conditonally #define a symbol in a dependency? 【发布时间】:2012-06-08 16:58:46 【问题描述】:我正在研究一个解决方案,其中解决方案中有一个特定的库,可以通过#ifdef 打开或关闭功能。
我在解决方案中有另一个项目将其用作依赖项。在我的构建设置中,我希望能够根据项目中的构建配置定义依赖库中的符号。我在 Visual Studio 中找不到任何方法。
有没有办法做到这一点?
(我意识到这里理想的解决方案是将那些#ifdef 更改为其他内容,但请假设我无法在其他项目中编辑代码)
【问题讨论】:
【参考方案1】:项目选项中的构建选项卡取决于构建配置下拉列表的选定值。您可以测试,当您选择 Debug 时,Define DEBUG constant 被选中,但不是在 Release 模式下。
只需选择适当的配置(调试、发布或自定义)并设置条件编译符号的值。
【讨论】:
【参考方案2】:我认为你做不到。没有“解决方案级别”定义,所有定义都针对一个项目。
正如@archil 指出的那样,您可以通过为项目选择正确的配置来实现一些目标。
另一种选择是直接使用 MSBuild 构建项目,而不是使用普通的 VS IDE 路由,这样您就可以通过命令行覆盖定义(http://***.com/questions/479979/msbuild-defining -条件编译符号)
【讨论】:
以上是关于有没有办法有条件地#define 依赖项中的符号?的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使我的 maven 依赖项中有第三方依赖项,也只需要 OSGi 容器中的第三方依赖项?