2017-10-05 92 views
6

Bir .cshtml görünümünde enterpolasyonlu bir dize kullanmak aşağıdaki intellisense hatası veriyor: Feature 'interpolated strings' is not used in C#5. Please use language version 6 or greater. Bu ve diğer C# 7 dil özellikleri derlenmiş kodda çalışıyor (.cs dosyaları) .VS2017 - C# 7 dil özellikleri MVC görüntülemelerinde çalışmıyor

Aşağıda gördüğünüz gibi, en son ana sürüm C# 7'dir.

enter image description here

this question da bir yorumu göre, "varsayılan" "son büyük sürüm" anlamına gelir.

Peki neden hata? Ayrıca, birçok çevrimiçi örnekte gördüğüm gibi, ayrı liste seçenekleri olarak "Son Büyük Sürüm" ve "Son Küçük Sürüm" gösterilmiyor?

GÜNCELLEME:. Sonunda MsBuild ilişkilidir CodeDom providers package (Microsoft.Net.Compilers paketini yükleyerek benim görünümlerinde çalışma dize interpolasyon başardı

CodeDOM Sağlayıcıları paket ASP.NET ve diğer ilişkilidir apis, bu nedenle çalışma zamanında derlemek neden cshtml dosyaları, msbuild için en son dil sürümü seçili olsa bile, bu yüklü değilse hataları gösterecektir).

<system.codedom> 
    <compilers> 
     <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> 
     <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" /> 
    </compilers> 
    </system.codedom> 

Ref: MVC6 için C# 6.0 Features Not Working with Visual Studio 2015

Yükseltme da düzelttim olurdu inanıyorum Bu, otomatik olarak benim web.config için aşağıdaki eklendi.

+3

Hangi sürümü VS2017 kullanıyorsunuz? Ekran görüntüsünüz RC versiyonlarını hatırlatıyor; yayımlanan versiyonlar değil. –

+0

@DavidArno - Enterprise. – Kev

+0

Üzgünüm, örneğin 15.3.5 gibi bir versiyonu kastediyorum. Bunu, "Yardım -> Microsoft Visual Studio Hakkında" aracılığıyla –

cevap

4

Sorunun anahtarının "görünümde" demenizden şüpheleniyorum. Bunun ASP.Net bağlamında olduğunu varsayarak, kendi LangVersion ayarını belirtebilen web.config dosyasına bakmanız gerekir (muhtemelen sizin davasında 5'e kadar kodlanmış).

Daha yeni C# sürümlerini kullanmak için ASP.Net'i yapılandırma hakkında daha fazla bilgi bu Roslyn documentation issue adresinde bulunabilir.

+0

Web.config dosyasında LangVerson yok. Bağlantılı sayfada öneriye göre Microsoft.Net.Compilers (VS2017'de olmamasına rağmen) yüklemeyi denedim. Hala LangVersion yok. Hala hatalar veriyor. – Kev

+0

Web.config'inizi paylaşabilir misiniz? '

+0

Hayır öyle bir şey yok. Dize enterpolasyonunu .cs dosyalarında kullanabilirim, ancak .cshtml dosyaları kullanamam. – Kev

İlgili konular