【问题标题】:Can Conditional compilation symbols be added to csproj.user file?可以将条件编译符号添加到 csproj.user 文件吗?
【发布时间】:2014-04-01 18:23:36
【问题描述】:

我在 VS 2013 中使用 C# Xamarin iOS 项目工作。我想添加一个条件编译符号而不影响其他任何人或不必进入配置管理器并说复制调试(主要是为了如果有人修改调试我不会错过更改)。

我已经阅读了一些帖子,说明尝试将这样的内容添加到 csproj.user 文件中...

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
</PropertyGroup>

...但这只是删除了项目的所有其他符号。

有没有办法可以修改 csproj.user 文件来实现这一点?

【问题讨论】:

    标签: c# projects-and-solutions conditional-compilation csproj-user


    【解决方案1】:

    我知道这是一个非常古老的问题。我不确定是否有人真的在使用 VS 2013,但它在 VS2017 中有效,与问题中的方式完全相同。

    但是!我必须先运行 Build -> Clean Solution 才能工作。 “重建解决方案”甚至没有这样做。我必须先清理,然后构建并运行它。

    我用这段代码测试了它:

    #if DEBUG
        Console.WriteLine("DEBUG");;
    #endif
    #if TRACE
        Console.WriteLine("TRACE");
    #endif
    #if __MY_NEW_SYMBOL__
        Console.WriteLine("__MY_NEW_SYMBOL__");
    #endif
    

    尽管我的 .user 文件只定义了__MY_NEW_SYMBOL__,但我在运行后在控制台中看到了所有三个。

    我的 .csproj 文件有这个:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DefineConstants>DEBUG;TRACE</DefineConstants>
    </PropertyGroup>
    

    我的 .csproj.user 文件有这个:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
    </PropertyGroup>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 2022-07-09
      相关资源
      最近更新 更多