Gav*_*and 11 c# projects-and-solutions conditional-compilation csproj-user
我正在使用C#Xamarin iOS项目在VS 2013中工作。我想添加一个条件编译符号,而不影响其他任何人,也不必进入Configuration Manager并说复制Debug(主要是这样,如果有人修改了Debug,我不会错过更改)。
我读过几篇文章,尝试将类似的内容添加到csproj.user文件中...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
...但这只是删除了该项目的所有其他符号。
有没有一种方法可以修改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
Run Code Online (Sandbox Code Playgroud)
即使我的.user文件仅定义了__MY_NEW_SYMBOL__,我在运行它后在控制台中看到了所有这三个文件。
我的.csproj文件具有以下内容:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我的.csproj.user文件具有以下内容:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
567 次 |
| 最近记录: |