Hata / langversion için geçersiz seçenek '6'; ISO-1, ISO-2, 3, 4, 5 veya Varsayılan olmalıdır


90

NET 4.6'yı hedeflemeye çalışıyorum ve ayrıca C # dil sürümünü 6 olarak değiştirerek en son C # sürümünden yararlanmaya çalışıyorum.

Ancak derleme sırasında şu hatayı aldım:

Hata / langversion için geçersiz seçenek '6'; ISO-1, ISO-2, 3, 4, 5 veya Varsayılan olmalıdır

/langversion:6Web.Config ayarını 5 olarak güncellersem çalışır,

  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">

Ancak bunu daha düşük dil sürümüne başvurmadan nasıl çözebilirim?

Visual Studio 2015 Community Edition kullanıyorum ve ayrıca Visual Studio 2015 tarafından varsayılan olarak yüklenmemiş olması ihtimaline karşı .NET Framework 4.6'yı manuel olarak da yükledim.

Proje, Visual Studio 2015 tarafından oluşturulan standart bir ASP.NET MVC şablon projesidir.


1
Benim durumumda sadece kaldırmak zorunda kaldım /langversion:6...
bohdan_trotsenko

@modosansreves Bu, varsayılan dil sürümüne dönecek .. ki bu C # 5 inanıyorum ... Lütfen C # 6 dil özelliklerinden herhangi birini kullanıp kullanamayacağınızı kontrol edin.
Rosdi Kasım

Aslında. Bu, C # 6 özelliklerini kullanmaktan mahrumdur. Teşekkürler.
bohdan_trotsenko

Yanıtlar:


89

Web.ConfigFramework sürümünü değiştirirken dosyadaki derleyici "türüne" dikkat edin :

4.5 ve C # 5 için -

type="Microsoft.CSharp.CSharpCodeProvider...

4.6 ve C # 6 için -

type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

Bu forum gönderisinde daha fazla bilgi


20
Bu işe yarıyor! .. Visual Studio 2015'te uygulamamı .NET 4.6 ve C # 6'ya yeniden hedeflediğimde bunu otomatik olarak güncellememesini bir hata olarak
görmeme rağmen

Bence haklısın. Onunla soktum ve sorunuza rastladım. Neyse ki bulduğum bir sonraki bağlantı cevaptı.
DrewB

1
Tüm .NET hedefleri için evrensel CSharpCodeProvider var mı?
denfromufa

1
Web.config dosyamın doğru türü vardı ve dil sürümü varsayılan olarak ayarlandı <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:default /nowarn:1659;1699;1701" />Sadece çözümü temizlemek ve yeniden derlemek benim için VS 2019'da
düzeltildi.

32

Sorunu çözmek için aşağıdaki NuGet paketlerini (hangisi yüklüyse) güncelleyin:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • Microsoft.Net.Compilers

bu bir cevaptan çok bir yorum
Al Lelopath

2
Bu gerçek çözüm !! Bu nuget paketini kaldırın ve sorun benim için çözüldü
Geomorillo 21

C # 6.0'a geçtim, ancak paket hala eski bir sürümdeydi. 1.0'dan 1.0.4'e güncelleme benim için çalıştı.
Mixxiphoid

7
@AlLelopath küçük bir cevap olduğu için yorum yapmaz. Bu küçük "yorum" sorunu benim ve diğerleri için çözdü, bu yüzden bir cevap olarak kalsa iyi olur.
Shimmy Weitzhandler


14

1. Proje'ye gidin ve Proje özelliklerinizi seçin.

2 Oluştur'u seçin ve Gelişmiş Düğmeye tıklayın.

3. Dil Sürümü varsayılanını seçin.

4. kaydedin.

https://youtu.be/IP8feQeWqkk


VS2013'te bu hatayı yaşadım. Bu çözüm maalesef benim için işe yaramadı.
Jviaches

2
Bu benim için çalıştı. Önerilen tüm diğer çözümler, web.config dosyasını değiştirmeye veya alternatif olarak NuGet paketlerini / güncellemelerini indirmeye odaklanmıştır. Derleyici geçersiz bir sürümle ilgili hatalar atmaya devam etti, bu da yapılandırma dosyasında bu ayarı yapmadığım için kafamı karıştırdı. Gelişmiş derleme özelliklerinin NuGet paket güncelleştirmesi tarafından otomatik olarak güncellenmediği ortaya çıktı.
Kiran Ramaswamy

3

Proje tamamen VS2015'e yükseltilmediyse bu davranışla karşılaştım. 2015'ten itibaren VS2013'te bir çözüm açarsanız - bu hatayı alırsınız


Ben de, bu hatanın temelde VS2015'i yüklemeniz gerektiği anlamına geldiğini düşünüyorum! Projedeki başka biri 2013'ün baş edemeyeceği daha yeni dil özelliklerini kullanıyor
JonnyRaa

2

NuGet Paket Yöneticisi konsolunu açın ve aşağıdaki komutu çalıştırın

Güncelleme Paketi Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r


0

ASP.NET tuhaf derleme hatasına bir yanıt görün ! .

C # dilinizi yalnızca 5'e düşürmek sorunu maskeler, biri C # 6 özelliğini kullanır kullanmaz web siteniz / projeniz bozulur ve yine de onu düzeltmek için zaman harcarsınız. Bağlantıdaki çözümü deneyin.


0

Visual Studio 2019'da ilk kez uygulama yüklerken benzer bir sorun yaşadım. "Microsoft.CodeDom.Providers.DotNetCompilerPlatform" nuget'i sonraki sürüme güncellemek benim için hile yaptı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.