Оказывается, @lennart был прав: в файле были и другие <LangVersion>
. VS спрятал их в некоторых конфигурациях сборки.
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;PLATFORM_X86</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<LangVersion>7.3</LangVersion> <-- HERE!!
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
SOLUTION : я удалил все эти особые случаи конфигурации и по умолчанию вернул язык, который я перечислил в верхней части файл.
Я могу сказать, что это сработало в моем случае, потому что теперь он отклоняет интерполированные строки (например, $"{value}words"
), говоря, что он не доступен в C # 5.
Что касается того, какие имена языков работают, и «5», и «5,0» работали для меня. Остальные варианты можно найти здесь
Я чувствую себя немного глупо, надеюсь, этот вопрос все еще будет полезен для некоторых будущих людей.