Latar Belakang
Kami memiliki proyek yang sedang kami kembangkan di VS 2015 dengan C # 6 diaktifkan yang terkadang perlu dibuka oleh pengembang menggunakan VS 2013 tanpa C # 6.
Kami tidak berniat untuk menggunakan C # 6 dalam solusi khusus ini (sebanyak yang saya inginkan).
Masalah
Visual Studio dan ReSharper menyarankan membantu C # 6 bahasa konstruksi yang membuat solusi tidak dapat beroperasi di versi Visual Studio tanpa dukungan C # 6.
Saya telah menonaktifkan dukungan ReSharper C # 6 tetapi saya tidak dapat menonaktifkan / membatasi fitur C # di seluruh solusi.
Pertanyaan
Bagaimana cara membatasi kemampuan C # ke C # 5 dalam solusi atau dalam Visual Studio 2015?
c#
visual-studio
c#-5.0
visual-studio-2015
c#-6.0
SeanKilleen
sumber
sumber
Jawaban:
Anda dapat menyetel fitur bahasa untuk setiap proyek secara terpisah dengan membuka
Properties => Build tab => Advanced button => Language Version
dan menyetel versi pilihan Anda.Anda harus menyadari bahwa itu masih akan menggunakan "C # 6.0" baru. Platform Kompilator Bersih (nama kode Roslyn). Namun, kompilator itu akan meniru perilaku kompiler lama dan akan membatasi Anda pada fitur yang hanya tersedia pada versi bahasa tertentu itu.
Saya tidak berpikir bahwa ada pengaturan luas solusi yang tersedia.
sumber
PropertyGroup
elemen pertama :<LangVersion>5</LangVersion>
<LangVersion>6</LangVersion>
saja.tambahkan di bawah ini
.sln.DotSettings
harus menonaktifkannya di tingkat solusi<s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String>
Atau jika Anda tidak memiliki
.sln.DotSettings
file:Jika file solusi Anda bernama Apple.sln, buat file di sampingnya bernama Apple.sln.DotSettings.
Berikan isinya sebagai berikut:
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <s:String x:Key="/Default/CodeInspection/CSharpLanguageProject/LanguageLevel/@EntryValue">CSharp50</s:String> </wpf:ResourceDictionary>
Tutup dan buka kembali solusinya, Resharper seharusnya hanya memperingatkan Anda tentang C # 5 hal.
Jangan lupa untuk menghapus ini saat Anda akhirnya mulai menggunakan fitur C # 6! :)
sumber
Ini alat yang saya tulis dapat membantu Anda jika Anda memiliki banyak proyek yang Anda butuhkan untuk set
LangVersion
untuk.sumber
Anda dapat mengatur fitur bahasa untuk semua
solutions/csproj
denganMSBuildUserExtensionsPath
.Cari nilai
$(MSBuildUserExtensionsPath)
, itu harus sepertiC:\Users\$(User)\AppData\Local\Microsoft\MSBuild
Kemudian edit file
Force.LangVersion.ImportBefore.props
di folder tersebut$(MSBuildUserExtensionsPath)\14.0\Imports\Microsoft.Common.Props\ImportBefore
dengan:<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <LangVersion>5</LangVersion> </PropertyGroup> </Project>
sumber
Langkah-langkahnya telah ditulis di atas, tinggal menambahkan screenshot lebih lanjut dari VS2015 saya:
Properti proyek >> Build >> Advanced >> Versi bahasa
Saya mengaturnya ke C # 5.0.
sumber
Klik kanan pada Project di Project Explorer dan pilih Properties.
Ketika tab Properties terbuka pilih Build dan klik tombol Advance di kanan bawah.
Ada kotak drop-down yang disebut Versi Bahasa. Ubah pilihan menjadi "C # 5.0"
sumber