1

I am using Visual Studio 2015 Enterprise (trial), and I'm having hard time enabling C# 7 language features.

I know that I need to install some packages into project to enable it, and I have but it still doesn't work.

Here is my packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="ManagedEsent" version="1.9.4" targetFramework="net461" />
  <package id="Microsoft.Azure.DocumentDB" version="1.17.0" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.Analyzers" version="1.1.0" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.Common" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.CSharp" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.CSharp.Workspaces" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.VisualBasic" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.VisualBasic.Workspaces" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeAnalysis.Workspaces.Common" version="2.3.1" targetFramework="net461" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.6" targetFramework="net461" />
  <package id="Microsoft.Net.Compilers" version="2.3.1" targetFramework="net461" developmentDependency="true" />
  <package id="Microsoft.Net.Compilers.netcore" version="1.3.2" targetFramework="net461" />
  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />
  <package id="System.AppContext" version="4.3.0" targetFramework="net461" />
  <package id="System.Collections" version="4.3.0" targetFramework="net461" />
  <package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" />
  <package id="System.Collections.Immutable" version="1.4.0" targetFramework="net461" />
  <package id="System.Composition" version="1.1.0" targetFramework="net461" />
  <package id="System.Composition.AttributedModel" version="1.1.0" targetFramework="net461" />
  <package id="System.Composition.Convention" version="1.1.0" targetFramework="net461" />
  <package id="System.Composition.Hosting" version="1.1.0" targetFramework="net461" />
  <package id="System.Composition.Runtime" version="1.1.0" targetFramework="net461" />
  <package id="System.Composition.TypedParts" version="1.1.0" targetFramework="net461" />
  <package id="System.Console" version="4.3.0" targetFramework="net461" />
  <package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" />
  <package id="System.Diagnostics.FileVersionInfo" version="4.3.0" targetFramework="net461" />
  <package id="System.Diagnostics.StackTrace" version="4.3.0" targetFramework="net461" />
  <package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="net461" />
  <package id="System.Dynamic.Runtime" version="4.3.0" targetFramework="net461" />
  <package id="System.Globalization" version="4.3.0" targetFramework="net461" />
  <package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
  <package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
  <package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
  <package id="System.Linq" version="4.3.0" targetFramework="net461" />
  <package id="System.Linq.Expressions" version="4.3.0" targetFramework="net461" />
  <package id="System.Reflection" version="4.3.0" targetFramework="net461" />
  <package id="System.Reflection.Metadata" version="1.5.0" targetFramework="net461" />
  <package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="net461" />
  <package id="System.Runtime" version="4.3.0" targetFramework="net461" />
  <package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" />
  <package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" />
  <package id="System.Runtime.Numerics" version="4.3.0" targetFramework="net461" />
  <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />
  <package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
  <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
  <package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" />
  <package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" />
  <package id="System.Text.Encoding.CodePages" version="4.4.0" targetFramework="net461" />
  <package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" />
  <package id="System.Threading" version="4.3.0" targetFramework="net461" />
  <package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />
  <package id="System.Threading.Tasks.Parallel" version="4.3.0" targetFramework="net461" />
  <package id="System.Threading.Thread" version="4.3.0" targetFramework="net461" />
  <package id="System.ValueTuple" version="4.4.0" targetFramework="net461" />
  <package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" />
  <package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" />
  <package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="net461" />
  <package id="System.Xml.XPath" version="4.3.0" targetFramework="net461" />
  <package id="System.Xml.XPath.XDocument" version="4.3.0" targetFramework="net461" />
</packages>

And I also know that after installing those packages, I need to navigate to: Project -> Properties -> Advanced and set the C# version; and I have, but the latest version listed there is version 6.

Here's a code sample where I get a build and IntelliSense error:

public override T this[int x, int y]
{
    get => Data[x, y]; 
}

Build output:

Severity Code Description Project File Line Suppression State Error CS8059 Feature 'expression body property accessor' is not available in C# 6. Please use language version 7 or greater. General C:\Users\Mladen\Projekti\tetris-cs\General\Matrix.cs 23 Active

The question is a not duplicate because the answer on the referenced question doesn't answer mine. I have installed packages suggested in that question, and I'm still getting these errors.

Don't know why doesn't project references list Microsoft.Net.Compilers package, I have it installed.

BJ Myers
  • 6,617
  • 6
  • 34
  • 50
Scarass
  • 914
  • 1
  • 12
  • 32
  • 1
    Did you actually install the packages recommended [here](https://stackoverflow.com/questions/39461407/how-to-use-c7-with-visual-studio-2015)? It doesn't look like you did... – Cody Gray - on strike Aug 16 '17 at 11:29
  • 4
    Short answer: you can replace the compiler in VS2015 to use C# 7.x, but intellisense will not understand the syntax. So your screen will be full of "red squiggles". If you want the true C# 7.x experience, upgrade to VS2017, use JetBrain's Rider IDE or use VSCode. – David Arno Aug 16 '17 at 11:36
  • 1
    Regarding the "Please use language version 7 or greater" error, check that the latest compiler is selected in `Project -> Properties -> Build -> Advanced`. – David Arno Aug 16 '17 at 11:40
  • @DavidArno, have allready, latest is version 6. – Scarass Aug 16 '17 at 11:43
  • 2
    What happens if you set `Language Version` to `default`? – mjwills Aug 16 '17 at 11:57
  • @mjwills now that worked! Build successed but IntelliSense still shows errors :( Can that be fixed? Resharper is set to C# but still... – Scarass Aug 16 '17 at 12:05
  • 2
    Have a read of https://stackoverflow.com/questions/39461407/how-to-use-c7-with-visual-studio-2015 again. – mjwills Aug 16 '17 at 12:06
  • IntelliSense cannot be "fixed". It's built into Visual Studio. As previously stated, if you want C# 7.x IntelliSense, you need to upgrade to VS2017, use JetBrain's Rider IDE or use VSCode. – David Arno Aug 17 '17 at 07:23

0 Answers0