5
votes

I'm writing a Roslyn diagnostic analyzer that should work on VS2015 and later editions. I want to know the latest version of Microsoft.CodeAnalysis I can use with my project and still support VS2015. I need to use an API that was added in Roslyn 1.2.0 (AnalysisContext.EnableConcurrentExecution), but I think that version of Roslyn isn't included with VS2015 (IIRC, only VS2017 supports C# 7). Does this mean I can't use this API in my analyzer?

1
Why do you "need to" call AnalysisContext.EnableConcurrentExecution? If you don't, your analyzer will work just the same from a functional point of view (though maybe a bit slower). - Kris Vandermotten
@KrisVandermotten Okay, I didn't need to, I wanted to. The question still holds. - James Ko
Yes, the question still holds indeed. And the accepted answer tells you what you need to know. If (and only if) you are ok with only supporting VS 2015 Update 2 or later, you can call EnableConcurrentExecution. - Kris Vandermotten

1 Answers

14
votes

Yes, Roslyn 2.3.0 will only work on Visual Studio 2017.3 and newer.

In general the mappings of Roslyn to Visual Studio versions works like this:

Roslyn 1.0.x -> Visual Studio 2015.0 (RTM)

Roslyn 1.1.x -> Visual Studio 2015.1 (Update 1)

Roslyn 1.2.x -> Visual Studio 2015.2 (Update 2)

Roslyn 1.3.x -> Visual Studio 2015.3 (Update 3)

Roslyn 2.0.x -> Visual Studio 2017.0 (RTM)

Roslyn 2.1.x -> Visual Studio 2017.1.x

Roslyn 2.2.x -> Visual Studio 2017.2.x

Roslyn 2.3.x -> Visual Studio 2017.3.x

Roslyn 2.4.x -> Visual Studio 2017.4.x

Roslyn 2.6.x -> Visual Studio 2017.5.x

Roslyn 2.7.x -> Visual Studio 2017.7.x

Roslyn 2.8.x -> Visual Studio 2017.7.x

Roslyn 2.9.x -> Visual Studio 2017.8.x

Roslyn 2.10.x -> Visual Studio 2017.9.x

Roslyn 3.0.x -> Visual Studio 2019.0 (RTM)