我在VS 2013中使用C#Xamarin iOS项目。我想添加一个条件编译符号,而不影响其他人或不得不进入配置管理器并说复制调试(主要是因为如果有人修改调试我不会错过更改)。
我已经阅读了一些帖子,说明尝试将这样的内容添加到csproj.user文件...
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DefineConstants>$(DefineConstants);__MY_NEW_SYMBOL__</DefineConstants>
</PropertyGroup>
...但这只是删除了项目的所有其他符号。
有没有办法可以修改csproj.user文件来实现这个目的?
答案 0 :(得分:5)
我看到这是一个非常老的问题。我不确定是否有人真的正在使用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>