我正在一个解决方案中工作,其中解决方案中有一个特定的库,可以通过#ifdef 打开或关闭功能。
我在解决方案中有另一个项目将其用作依赖项。在我的构建设置中,我希望能够根据项目中的构建配置定义依赖库中的符号。我在 Visual Studio 中找不到任何方法来执行此操作。
有没有办法做到这一点?
(我意识到这里的理想解决方案是将那些#ifdef 更改为其他内容,但请假设我无法在其他项目中编辑代码)
我正在一个解决方案中工作,其中解决方案中有一个特定的库,可以通过#ifdef 打开或关闭功能。
我在解决方案中有另一个项目将其用作依赖项。在我的构建设置中,我希望能够根据项目中的构建配置定义依赖库中的符号。我在 Visual Studio 中找不到任何方法来执行此操作。
有没有办法做到这一点?
(我意识到这里的理想解决方案是将那些#ifdef 更改为其他内容,但请假设我无法在其他项目中编辑代码)
项目选项中的构建选项卡取决于构建配置下拉列表的选定值。您可以测试,当您选择 Debug 时,Define DEBUG constant 被选中,但不是在 Release 模式下。
只需选择适当的配置(调试、发布或自定义)并设置条件编译符号的值。
我不认为你能做到这一点。没有“解决方案级别”定义,所有定义都针对一个项目。
正如@archil 指出的那样,您可以通过为项目选择正确的配置来实现一些目标。
另一种选择可能是直接使用 MSBuild 构建项目,而不是使用普通的 VS IDE 路由,这样您就可以通过命令行覆盖定义(http://stackoverflow.com/questions/479979/msbuild-defining-conditional-编译符号)