6

我需要使用配置创建项目的多个版本,就像我们使用#define, #if, #endif.

使用这些预处理器指令的缺点是我需要在项目的几乎每个文件中定义符号,但我想通过我的构建配置来处理这个事情。

我什至不确定构建配置是否会帮助我做到这一点。

我想要的是,如果我创建一个名为“Development”的配置和另一个名为“QA”的配置,我的代码将如下所示:

if #Development or if $QA

请指导我实现这一目标。

4

2 回答 2

10

由于这个原因存在配置管理器。

  • 转到配置管理器并从预定义的调试配置创建一个新配置复制
  • 将配置命名为 DEVELOPMENT 并应用于所有项目
  • 选择开发配置作为活动配置(应该已经是活动的)
  • 转到每个需要#if DEVELOPMENT 条件编译的项目的属性页面,然后在 BUILD 选项卡的第一个文本框中插入 DEVELOPMENT 符号

现在您的每个项目都可以使用#if DEVELOPMENT 预处理器指令

如果您还需要 RELEASE 重复上述步骤,但从预定义的 RELEASE 配置中复制并提供不同的名称

现在,可以直接从 Visual Studio 标准工具栏中的解决方案配置组合工具中切换定义有或没有定义的开发符号的配置,而无需编辑每个项目。

您还可以查看 MSDN 文章如何:创建和编辑配置

于 2012-04-10T10:09:29.760 回答
0

除了 Michael Freidgeim 的解决方案之外,您还可以将属性conditional用于中央初始化操作或其他 void 功能:

[Conditional("DEVELOPMENT")]
public static void InitDemo()
{
      Models.LogFile.ErrorLog("This is a Development Version!");
      // init settings
}

在这里找到:http: //msdn.microsoft.com/de-de/library/4xssyw96%28v=vs.80%29.aspx

于 2013-06-28T14:32:08.790 回答