#if debug --> #if myOwnConfig?

85
在Visual Studio中是否有一种使用自定义配置的方法,类似于“#if DEBUG”?
我需要一个类似于“#if OFFLINE”的东西作为我的构建配置名称是“离线”(仅用于进一步的调试目的)...
谢谢!

似乎现在VS默认为您执行此操作。不确定更改的版本是哪个。但是,当我创建一个新配置(在2022年)时,会自动存在一个与配置名称相同的编译符号,这很好。 - AnorZaken
3个回答

128

可以实现这个功能。

操作步骤:

  1. 生成 -> 配置管理器 -> 活动解决方案配置 -> 新建...
  2. 创建一个名为:离线的新配置。
  3. 项目 -> 属性 -> 生成 -> 配置 -> 离线
  4. 条件编译符号,类型:OFFLINE
  5. 保存项目。
  6. 重新启动Visual Studio(仅重新加载项目不足以生效)。

5
需要重新启动Visual Studio使我的配置符号生效。 - Jerome2606
“Active solution configuration” 设置更改哪个文件?我想将其提交到 Git 中,但它没有看到更改。 - Goku
@Goku:VS将活动配置存储在本地解决方案设置中。它不会更改项目或解决方案文件中的任何内容,因此无法存储在源代码控制中。该设置是VS的指示,用于默认构建哪个配置(例如,当您按F6时)。它的行为类似于MSBuild的“/p:Configuration”参数,表示“请使用%ConfigName%配置构建我的源代码”。 - Dennis
VS 2022 17.5.1 - 在步骤 1 和 2 中创建新的配置,然后它很容易地可用(作为大写字母!) - AC Thompson

41

是的,你可以。但在此之前,请按照以下步骤操作:

  1. 在Visual Studio中,转到“属性” -> “生成”。
  2. 在配置下拉菜单中,选择“离线”
  3. 将“OFFLINE”添加到“条件编译符号”文本框中

如果你跳过这些步骤,你的 #if OFFLINE 将无法正常工作,因为在这种情况下,OFFLINE 没有被定义。


很高兴看到两个回复,这让我的工作变得更加轻松。谢谢! - user1841243
2
除了取消勾选“定义DEBUG常量”之外,我还需要在“条件编译符号”文本框中的“OFFLINE”后添加一个分号。 - gblock

9

我按照上述步骤完全操作了,但它们并没有起作用。他们漏掉了一步或者没有清楚地解释。

当您执行第四步:条件编译符号:输入OFFLINE时,您还需要取消选中“定义DEBUG常量”。否则,新的符号OFFLINE将无法工作。

我在这里发布这个帖子,以防有人像我一样浪费很多时间尝试做同样的事情。


1
看起来这取决于VS版本和项目系统版本。至少,在使用VS2019/17和netcore/netstandard项目时,无需重新启动VS和/或取消DEBUG / TRACE符号。老实说,我不记得早期版本的行为如何。 - Dennis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接