Vor ein paar Tagen haben wir unser aktuelles Projekt von Visual Studio 2013 auf Visual Studio 2015 umgestellt. In diesem Zuge nutzen wir nun auch die Sprach-Features von C# 6, u.a. den Null-Conditional Operator, Auto-Property Initialisierer, String-Interpolation und das nameof-Schlüsselwort. Nun wollten wir diese Features auch in unseren ASP.NET MVC Views einsetzen, was jedoch zunächst zu folgendem Fehler führt:
Anders als „normale“ C#-Klassen werden Views zur Laufzeit kompiliert und bei C# 6 geschieht dies über Roslyn. Um C# 6 in MVC-Views nutzen zu können, ist daher die Installation es NuGet-Pakets CodeDOM Providers for .NET Compiler Platform notwendig:
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform Attempting to gather dependencies information for package 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1' with respect to project 'C6DemoApplication', targeting '.NETFramework,Version=v4.5' Attempting to resolve dependencies for package 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1' with DependencyBehavior 'Lowest' Resolved actions to install package 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1' Added package 'Microsoft.Net.Compilers.1.0.0' Added package 'Microsoft.Net.Compilers.1.0.0' to 'packages.config' Successfully installed 'Microsoft.Net.Compilers 1.0.0' Added package 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1' Added package 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1' to 'packages.config' Executing script file '.\C6DemoApplication\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\tools\install.ps1' Successfully installed 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1'
Somit können nachfolgend alle C# 6 Features in den MVC-Views verwendet werden. Zu beachten ist, dass das Einbinden des NuGet-Pakets nur bei Migrationsprojekten nach Visual Studio 2015 notwendig ist. Erstellt man in VS2015 eine neue Webanwendung, so sind alle nötigen NuGet-Pakete bereits enthalten.
1 Kommentar
Pingbacks
-
[…] Quick Tipp: ASP.NET MVC – C# 6 Features in Views aktivieren […]