【问题标题】:How to define conditional compilation symbols in separate file (not .csproj or app.config)如何在单独的文件(不是 .csproj 或 app.config)中定义条件编译符号
【发布时间】:2010-11-16 07:40:57
【问题描述】:

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

【问题讨论】:

    标签: .net conditional-compilation


    【解决方案1】:

    这行得通:

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

    所以只需在 csproj.user 文件中添加如下内容即可。

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-27
        • 2010-10-03
        • 2019-03-24
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多