Saya telah melalui fitur terbaru yang diperkenalkan di C # 6.0 dan hanya mengikuti contoh penginisialisasi properti otomatis,
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
tetapi IDE saya tidak mengenali sintaks.
Saya bertanya-tanya bagaimana saya bisa mengaktifkan C # 6.0 di Visual Studio 2013. Kerangka kerja yang saya gunakan adalah 4.5.1.
c#
visual-studio
visual-studio-2013
c#-6.0
Hassaan
sumber
sumber
Jawaban:
Informasi untuk perangkat lunak pra-rilis usang:
Menurut ini hanya menginstal dan pergi untuk Visual Studio 2013:
Jadi, ambil saja file-file itu dari https://github.com/dotnet/roslyn dan Anda siap berangkat.
Anda harus tahu bahwa ini adalah versi spesifikasi yang sudah usang yang diterapkan di sana, karena mereka tidak lagi memperbarui paket untuk Visual Studio 2013 :
Jadi jika Anda ingin menggunakan versi terbaru, Anda harus mengunduh Visual Studio 2015 .
sumber
Di bawah VS2013 Anda dapat menginstal kompiler baru ke proyek sebagai paket nuget . Dengan begitu Anda tidak perlu VS2015 atau server build yang diperbarui.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
Paket ini memungkinkan Anda untuk menggunakan / membuat kode / sintaks C # 6.0. Karena VS2013 tidak secara alami mengenali sintaks C # 6.0 baru, itu akan menunjukkan kesalahan di jendela editor kode meskipun itu akan membangun dengan baik .
Dengan menggunakan Resharper, Anda akan mendapatkan garis berlekuk-lekuk pada fitur C # 6, tetapi bohlam memberi Anda opsi untuk 'Aktifkan dukungan C # 6.0 untuk proyek ini' (pengaturan disimpan ke .DotSettings).
Seperti yang disebutkan oleh @ stimpy77: untuk dukungan dalam tampilan MVC Razor Anda akan memerlukan paket tambahan (bagi mereka yang tidak membaca komentar)
Jika Anda ingin dukungan penuh C # 6.0, Anda harus menginstal VS2015.
sumber
Banyak jawaban di sini ditulis sebelum Roslyn (open-source .NET C # dan VB compiler) pindah ke .NET 4.6. Jadi mereka tidak akan membantu Anda jika proyek Anda menargetkan, katakanlah, 4.5.2 seperti milik saya (diwariskan dan tidak dapat diubah).
Tetapi Anda dapat mengambil Roslyn versi sebelumnya dari https://www.nuget.org/packages/Microsoft.Net.Compiler dan menginstalnya alih-alih versi terbaru. Saya menggunakan 1.3.2. (Saya mencoba 2.0.1 - yang tampaknya merupakan versi terakhir yang berjalan pada .NET 4.5 - tetapi saya tidak dapat membuatnya untuk mengkompilasi *.) Jalankan ini dari konsol Package Manager di VS 2013:
Kemudian mulai kembali Visual Studio. Saya punya beberapa masalah pada awalnya; Anda perlu mengatur versi C # kembali ke default (C # 6.0 tidak muncul dalam daftar versi tetapi tampaknya telah dijadikan default), lalu bersihkan, simpan, mulai ulang VS dan kompilasi ulang.
Menariknya, saya tidak memiliki kesalahan IntelliSense karena fitur C # 6.0 yang digunakan dalam kode (yang merupakan alasan untuk menginginkan C # 6.0 di tempat pertama).
* versi 2.0.1 melemparkan kesalahan Tugas "Microsoft.CodeAnalysis.BuildTasks.Csc tidak dapat dimuat dari perakitan Microsoft.Build.Tasks.CodeAnalysis.dll. Tidak dapat memuat file atau perakitan 'Microsoft.Build.Utilities.Core, Versi = 14.0.0.0, Budaya = netral, PublicKeyToken = b03f5f7f11d50a3a 'atau salah satu dari dependensinya. Sistem tidak dapat menemukan file yang ditentukan. Konfirmasikan bahwa deklarasi itu benar, bahwa perakitan dan semua dependensinya tersedia, dan bahwa tugas tersebut mengandung kelas publik yang mengimplementasikan Microsoft.Build.Framework.ITask.
UPDATE Satu hal yang saya perhatikan sejak memposting jawaban ini adalah bahwa jika Anda mengubah kode apa pun selama debug ("Edit dan Lanjutkan"), Anda akan mendapati bahwa kode C # 6.0 Anda tiba-tiba akan muncul sebagai kesalahan dalam apa yang tampaknya dikembalikan ke lingkungan pra-C # 6.0. Ini membutuhkan restart dari sesi debug Anda. SANGAT menyebalkan terutama untuk aplikasi web.
sumber
Perlu disebutkan bahwa waktu pembuatan akan ditingkatkan untuk pengguna VS 2015 setelah :
Mereka yang menggunakan VS 2015 dan harus menyimpan paket ini di proyek-proyek mereka dapat memperbaiki peningkatan waktu pembuatan .
Edit file
packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
dan bersihkan. File akan terlihat seperti:Melakukan hal itu memaksa proyek untuk dibangun seperti sebelum menambahkan
Microsoft.Net.Compilers
paketsumber
Dimungkinkan untuk menggunakan fitur C # 6.0 penuh di Visual Studio 2013 jika Anda memiliki Resharper.
Anda harus mengaktifkan Resharper Build dan voilá! Di Opsi Resharper -> Build - aktifkan Resharper Build dan di "Gunakan versi MSBuild.exe" pilih "Terbaru Diinstal"
Dengan cara ini Resharper akan membangun Proyek C # 6.0 Anda dan juga tidak akan menggarisbawahi kode C # 6.0 sebagai tidak valid.
Saya juga menggunakan ini walaupun saya memiliki Visual Studio 2015 karena:
Saya meletakkan ini di sini, karena saya sedang mencari solusi untuk masalah ini untuk beberapa waktu sekarang dan mungkin itu akan membantu orang lain.
sumber
Sepertinya ada beberapa kesalahpahaman. Jadi, alih-alih mencoba menambal VS2013 di sini dan menjawab dari orang Microsoft: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-selalu-didukung-oleh-vs-2013? Forum = roslyn
Jadi, tolong, baca dan instal VS2015.
sumber