可以将条件编译符号添加到csproj.user文件中吗?



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

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

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

。但这只会删除项目的所有其他符号。

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

我认为这是一个非常古老的问题。我不确定是否有人真的在使用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>

最新更新