Saya menguji Visual Studio 2015 dengan C # 6.0 tetapi fitur bahasa tidak berfungsi. Dalam aplikasi web MVC, kode berikut dapat dikompilasi:
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
// More logic here...
}
Namun, ketika saya menjalankan aplikasi melalui Debug dan IIS Express, saya mendapatkan error berikut:
CS1525: Istilah ekspresi tidak valid '.'
Bagaimana cara mengaktifkan fitur ini?
c#
asp.net-mvc
visual-studio-2015
roslyn
c#-6.0
Chris Schiffhauer
sumber
sumber
compiler
elemen untuk penyedia kode roslyn msdn.microsoft.com/en-us/library/y9x69bzw(v=vs.110).aspx di web.config?Jawaban:
Ini berfungsi di MVC 5 (diuji 5.2.3), Anda hanya perlu menambahkan paket kode roslyn dom Nuget
Penyedia CodeDOM untuk .NET Compiler ...
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
sumber
nuget.org
. Seperti yang Anda lihat dari tautan, itu adalah nama yang benar, dan paketnya ada.Nah, saya punya MVC5 dan baru saja menginstal VS 2015.
Saya telah menginstal paket penyedia CodeDOM, tetapi itu tidak membantu ... Tetapi setelah itu saya menyadari, paket itu hanya mendukung kerangka kerja 4.5, sementara saya menetapkan kerangka kerja target ke 4.6 selama pengujian - ini berfungsi dengan 4.5 ...
Jadi perhatikan juga kerangka target. Jika Anda memiliki 4,5 - cukup instal paket Microsoft.CodeDom.Providers.DotNetCompilerPlatform. Tetapi jika Anda memiliki 4.5.1-4.6 sebagai target, Anda harus mengubahnya di bagian web.config
<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"> <providerOption name="CompilerVersion" value="v4.0"/> </compiler> <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom>
Untuk C # , cukup ubah tipe menjadi:
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
sumber
C# 6
untuk bekerja denganASP.NET 4.6
, tetapi mungkin lebih baik untuk memposting kode dengan benartype
sudah ada ...Saya mengalami masalah yang sama di Visual Studio 2015. Jawaban lain di sini menyinggung solusi yang saya gunakan, tetapi mereka salah menentukan perbaikan dan tidak pernah memberikan klarifikasi.
Pada menu Visual Studio, pilih Proyek dan Anda akan melihat sub-item Aktifkan C # 6 / VB 14 jika Anda mengalami masalah ini. Pilih sub-item menu ini. Ini akan mengunduh paket yang benar dari Nuget dan menginstalnya. Setelah ini, mulai ulang Visual Studio dan muat ulang solusi Anda.
Saya tidak dapat memverifikasi apakah ini juga akan memperbaiki pilihan Project Properties> Build> Advanced> Language Version ke C # 6 , jadi Anda mungkin ingin memeriksa ini juga setelah mengaktifkan C # 6 dari menu.
sumber
Periksa properti proyek Anda, lanjutkan ke build, lanjutan dan lihat apakah C # 6.0 jika Anda tidak memilikinya sebagai default.
Saat ini ada dukungan sempurna untuk MVC5 dan C # 6.0 dan bekerja dengan sangat baik!
sumber
Termasuk mengikuti saran untuk menginstal yang terbaru,
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
saya juga harus mengatur root sayaWeb.config
system.codedom
ini untuk akhirnya menghilangkan semua kesalahanVisual Studio 2015
:<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.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.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/> </compilers> </system.codedom>
Sekarang restart
Visual Studio
dan itu harus dilakukan.sumber
Visual Studio 2015 juga akan menampilkan
Enable C#6 / VB 14
di menu Proyek dengan situs web / aplikasi web ASP.NET dipilih.Ini secara de facto akan menginstal
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
danMicrosoft.Net.Compilers
memaketkan ke dalam proyek Anda dan menambahkan tag yang sesuai ke dalam file web.config.sumber
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 /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.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:15 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
sumber