dotnet/buildtools

Are the Roslyn checks still necessary?

stephentoub opened this issue · 1 comments

In a variety of places, we check MSBuildToolsVersion to determine whether we're using Roslyn, e.g.

<_usingRoslyn Condition="'$(MSBuildToolsVersion)' == 'dogfood' OR '$(MSBuildToolsVersion)' == 'Current' OR '$(MSBuildToolsVersion)' &gt;= '14.0'">true</_usingRoslyn>

and
<RoslynIncompatibleMsbuildVersion Condition="'$(MSBuildToolsVersion)' == '2.0' OR
'$(MSBuildToolsVersion)' == '3.5' OR
'$(MSBuildToolsVersion)' == '4.0' OR
'$(MSBuildToolsVersion)' == '12.0' OR
'$(MSBuildToolsVersion)' == '14.0'">true</RoslynIncompatibleMsbuildVersion>
<!-- UseSharedCompilation is not supported in MSBuild 14.0 with the new version of roslyn, so make sure we are not using that for building -->
<UseSharedCompilation Condition="'$(UseSharedCompilation)' == '' and '$(UseRoslynCompilers)' != 'false' and '$(RoslynIncompatibleMsbuildVersion)' != 'true'">true</UseSharedCompilation>
<GenFacadesIgnoreBuildAndRevisionMismatch>true</GenFacadesIgnoreBuildAndRevisionMismatch>

Is this still necessary? Or can we just assume we're using Roslyn everywhere and simplify these checks?

// Auto-generated message

Going forward, the .NET team is using https://github.com/dotnet/arcade to develop the code and issues formerly in this repository. Feel free to reopen/move this issue if it still applies to servicing branches in this repository, or source code which now resides in the Arcade repository.