Visual Studio 2013'te C # 6.0 özelliği nasıl etkinleştirilir?


201

C # 6.0'da sunulan en son özelliklerden geçiyordum ve sadece otomatik özellik başlatıcısı örneğini takip ettim,

class NewSample
{
    public Guid Id { get; } = Guid.NewGuid();
}

ancak IDE'm sözdizimini tanımadı.

Visual Studio 2013'te C # 6.0'ı nasıl etkinleştirebileceğimi merak ediyorum. Kullandığım Hedef çerçevesi 4.5.1.


7
Bunun 2013'te mümkün olduğuna inanmıyorum. Bunun yerine VS 14 CTP veya VS 2015 önizlemesine bakın.
Jeroen Vannevel

VS 2013'ün bir parçası olmayan en son derleyiciye ihtiyacınız olacak, bu yüzden bunun mümkün olduğunu düşünmüyorum.
Rufus L

2
Peki, ben sadece ms herhangi bir güncelleme yayınlayıp yayınlamadığını öğrenmek için arıyorum
Hassaan

1
@PauloMorgado "Bu sürüm modası geçmiş" kelimesinde "bu" ne anlama geliyor? 4.5.1, VS2013 veya VS2014CTP?
ProfK

2
Bu sorunun cevabını @Deef
Chris Marisic olarak

Yanıtlar:


64

Kullanılmayan yayın öncesi yazılım bilgileri:

Göre bu sadece bir yükleyin ve Visual Studio 2013 için gidip de:

Aslında, bu sürümden C # 6.0 derleyicisini yüklemek, bir Visual Studio 2013 uzantısını yüklemekten çok daha fazlasını içerir ve bu da MSBuild hedef dosyalarını güncelleştirir.

Yani dosyaları https://github.com/dotnet/roslyn adresinden almanız yeterlidir.

Visual Studio 2013 paketini artık güncellemedikleri için, burada uygulanan özelliklerin eski bir sürümü olduğunu bilmeniz gerekir :

Ayrıca Visual Studio 2013'ün üzerine yüklenen Nisan Son Kullanıcı Önizlemesini de deneyebilirsiniz. (Not: bu VS 2013 önizlemesi oldukça güncel değildir ve artık güncellenmemektedir)

En son sürümü kullanmak istiyorsanız, Visual Studio 2015'i indirmeniz gerekir .


7
unfortunatily, vs 2013 için son kullanıcı önizlemesi kapatıldı :(
Hassaan

4
Sadece emin olmak için, VS 2013 kullanarak C # 6 yazmak için desteklenen bir yolu yoktur? VS 2015 kullanmak zorunda mıyım?
vorou

2
Bu doğru. @vorou ​​VS 2013 önizleme yazılımının yeni bir sürümü yok.
Patrick Hofman

5
Aslında, bu bir yoldur (cevabımı görün). Ancak, son sürümden önce aylar önce yapabileceğinizden farklı.
David De Sloovere

1
bu konudaki hiçbir çözüm veya benzeri konular bana yardımcı olmadı. bu yüzden etraftaki tek iş sanırım VS 2015'e geçmek.
Yar

177

VS2013 altında, yeni derleyicileri bir nuget paketi olarak projeye kurabilirsiniz . Bu şekilde VS2015'e veya güncellenmiş bir yapı sunucusuna ihtiyacınız yoktur.

https://www.nuget.org/packages/Microsoft.Net.Compilers/

Install-Package Microsoft.Net.Compilers

Paket C # 6.0 kodunu / sözdizimini kullanmanızı / oluşturmanızı sağlar. VS2013, yeni C # 6.0 sözdizimini yerel olarak tanımadığından, iyi oluşturmasına rağmen kod düzenleyici penceresinde hatalar gösterecektir .

Yeniden Paylaşıcı'yı kullanarak C # 6 özelliklerinde dalgalı çizgiler elde edersiniz, ancak ampul size 'Bu proje için C # 6.0 desteğini etkinleştir' seçeneği sunar (.DotSettings'e kaydedildi).

@ Stimpy77 tarafından belirtildiği gibi: MVC Razor görünümlerinde destek için ekstra bir pakete ihtiyacınız olacak (yorumları okumayanlar için)

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

Tam C # 6.0 desteği istiyorsanız, VS2015'i yüklemeniz gerekir.


8
Birincil kurucular aslında son sürümden çıkarıldı. Bu yüzden çalışmıyorlar.
Mark A. Donohoe

8
Sadece bir MVC5 projesinde Razor'da C # 6 kullanmak isteyenlere dikkat çekmek istiyorum, bu ayrı bir NuGet paketi gibi görünüyor ve VS2015 kullanıyor olsanız bile gerekli. Bkz. Stackoverflow.com/a/30832849/11398
Jon Davis

2
Çalışıyor (derleyebileceğiniz gibi), ancak VS2013 yine de hatalar gösteriyor: stackoverflow.com/questions/35796001/…
mnwsmit

2
o o o. Bu harikaydı. Derleyici hataları önceden gösterir, ancak gerçekten derlendiğinde başarıyla derler. Bir hafta sonu sabahı başlamak için ne hack!
RBT

1
iyi oluşturmasına rağmen kod düzenleyici penceresinde hatalar gösterecektir. Sadece tekrar gösterme gereğini hissettim. Mükemmel cevap!
16:15

5

Burada yanıtların çoğu, Roslyn'den (açık kaynak .NET C # ve VB derleyicileri) .NET 4.6'ya geçmeden önce yazılmıştır . Projeniz 4.5.2 benimki gibi hedef alıyorsa (kalıtsaldır ve değiştirilemez) size yardımcı olmazlar.

Ama önceki bir sürümünü yakalayabilir Roslyn gelen https://www.nuget.org/packages/Microsoft.Net.Compilers ve en son sürümü yerine o yükleyin. 1.3.2 kullandım. (Ben .NET 4.5 üzerinde çalışan son sürüm gibi görünüyor 2.0.1 denedim - ama derlemek için alamadım *.) VS 2013'te Package Manager konsolundan çalıştırın:

PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2

Sonra Visual Studio'yu yeniden başlatın. Başlangıçta birkaç sorun yaşadım; C # sürümünü tekrar varsayılana ayarlamanız gerekir (C # 6.0 sürüm listesinde görünmüyor, ancak varsayılan olarak yapılmış görünüyor), ardından temizleyin, kaydedin, VS'yi yeniden başlatın ve yeniden derleyin.

İlginç bir şekilde, kodda kullanılan C # 6.0 özellikleri nedeniyle (bu C # 6.0 ilk etapta isteyen nedeni) herhangi bir IntelliSense hataları yoktu.

* sürüm 2.0.1 hatası attı "Microsoft.CodeAnalysis.BuildTasks.Csc görevi Microsoft.Build.Tasks.CodeAnalysis.dll derlemesinden yüklenemedi. Dosya veya derleme 'Microsoft.Build.Utilities.Core, Version yüklenemedi = 14.0.0.0, Kültür = nötr, PublicKeyToken = b03f5f7f11d50a3a 'veya bağımlılıklarından biri Sistem belirtilen dosyayı bulamıyor Bildirimin doğru olduğunu, derlemenin ve tüm bağımlılıklarının kullanılabilir olduğunu ve görevin bir Microsoft.Build.Framework.ITask uygulayan genel sınıf.

GÜNCELLEME Bu yanıtı yayınladığımdan beri fark ettiğim bir şey, hata ayıklama sırasında herhangi bir kodu değiştirirseniz ("Düzenle ve Devam Et"), C # 6.0 kodunuzun aniden geri döndürülecek şekilde hata olarak görüneceğini bulmaktır. bir C # 6.0 ortamı. Bu, hata ayıklama oturumunuzun yeniden başlatılmasını gerektirir. ÇOK can sıkıcı özellikle web uygulamaları için.


@RichBianco Bu harika - geri bildirim ve oylama için teşekkürler. Şahsen, v2.0.1'in neden çalışmadığını anlayamıyorum. Bu konuda herhangi bir ipucu varsa - olduğu gibi, bildirdiğim hatadan kurtulmak - lütfen düzeltmenizi gönderin.
SteveCinq

4

Bahsetmeye değer VS 2015 kullanıcıları için derleme süresinin artırılacağını :

Install-Package Microsoft.Net.Compilers

VS 2015 kullananlar ve bu paketi projelerinde tutmaları gerekenler artan inşaat süresini düzeltebilirler .

Dosyayı düzenle packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props ve temizleyin. Dosya şöyle görünmelidir:

<Project DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

Bunu yapmak projeyi Microsoft.Net.Compilerspaket eklemeden önceki gibi inşa edilmeye zorlar


2

Resharper'ınız varsa Visual Studio 2013'te tam C # 6.0 özelliklerini kullanmak mümkündür.
Resharper Build ve voilá'yı etkinleştirmelisiniz! Yeniden Oluşturma Seçenekleri -> Oluştur - Yeniden Oluşturma Oluştur'u etkinleştirin ve "MSBuild.exe sürümünü kullan" bölümünde "En Son Yüklenenler" i seçin

Bu şekilde Resharper, C # 6.0 Projelerinizi oluşturacak ve C # 6.0 kodunun geçersiz olarak altını çizmeyecektir.

Visual Studio 2015 olmasına rağmen bunu da kullanıyorum çünkü:

  1. Resharper'daki Birim Testleri, bir nedenden dolayı Visual Studio 2015 ile benim için çalışmıyor
  2. VS 2015, VS 2013'ten çok daha fazla bellek kullanıyor.

Bunu buraya koyuyorum, çünkü bir süredir bu soruna bir çözüm arıyordum ve belki başka birine yardımcı olacaktır.


-1

Bazı yanlış anlaşılmalar var gibi görünüyor. Yani, VS2013'ü düzeltmeye çalışmak yerine burada ve bir Microsoft adamından cevap verin: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-sürekli-desteklenecek-by-vs-2013? forumu = roslyn

Bu yüzden, lütfen okuyun ve VS2015'i yükleyin.


1
bağlantı ms oturum açtıktan sonra bile bana 'yetkili değil' verir. Tabii ki, VS2015 veya sonraki bir sürümünü yüklemek bazı ayarlarda £ XXX, 000s gider.
Chris F Carroll
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.