Ответ 1
Я вижу, это действительно старый вопрос. Я не уверен, что кто-то на самом деле использует VS 2013, но он работает в VS2017, именно так, как это было в вопросе.
Но! Я должен был запустить Build → Clean Solution, прежде чем он заработал. "Rebuild 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>