6

我们需要在类库项目中定义条件编译符号。这不应该在源代码控制中检查(它不适用于所有开发人员),因此它应该在.csprojapp.config文件之外的其他地方定义。如何做到这一点?

4

2 回答 2

10

我将在配置管理器(菜单BuildConfiguration Manager)中定义您的各种构建类型,并在每种构建类型上设置每个必需的常量。

然后,您可以让团队的每个成员简单地选择他们想要执行的构建类型,它会自动使用适当的常量。(我认为最近使用的构建类型存储在 .suo 文件中,这是“解决方案用户选项”,您通常不会签入源代码管理,因此将专门为每个用户维护)。

您可以使用/define开关在 C# 编译器命令行上定义预处理器常量,但您将遇到如何调用它的问题。您对项目属性所做的任何更改都将保存在 .csproj 文件中。您将不得不从命令行完成所有构建,而不是我确定您不会想要的。您也可以在 MSBuild 脚本中定义它们,但您会遇到同样的问题。

于 2009-08-03T09:36:12.527 回答
9

这有效:

事实证明,您可以在 csproj.user文件中定义条件符号。我认为同样的事情也适用于其他语言,但我没有尝试过。

因此,只需将以下内容添加到csproj.user文件中即可。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DefineConstants>MySpecialConstant, TestBlahBlah</DefineConstants>
</PropertyGroup>

我实际上更喜欢@SimonPStevens 解决方案,因为它包含 TFS,而不是隐藏。然而,有时,这只是更容易......

于 2013-10-03T16:21:03.377 回答