Search code examples
c#.netvisual-studiovisual-studio-2015asp.net-core

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!


Solution

  • 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.