James Ko James Ko - 1 month ago 15
C# Question

How to switch between target frameworks for .NET Core projects in Visual Studio

Say you have a .NET Core project that looks like this:

"frameworks": {
"net40": {},
"dotnet5.1": {}
}


And this is your C# code:

public class Foo
{
public static void Blah()
{
#if DOTNET5_1
DoSomething();
#elif NET40
DoSomethingElse();
#endif
}
}


Now, in Visual Studio when you view the
.cs
file, one of the
#if
sections will be grayed out- either
DoSomething
or
DoSomethingElse
. Here's how it shows up on my laptop:

enter image description here

Is it possible to get VS to 'switch context' between target platforms, so you can view what would be compiled for a particular platform? For example, I might want to check for any red squiggly lines for each framework before actually building the solution.

Any help would be appreciated, thanks!

Answer

At the top of your editor should be the navigation bar. Left in the navigation bar is a dropdown menu that lets you select the context.

If the navigation bar is hidden, you can enable it by going into Tools > Options > Text Editor > C# and check the navigation bar checkbox.