Uso del operador "nameof" en las vistas Razor
En mi VS.NET 2015 máquina de desarrollo, las vistas Razor que utilizan el nameof
operator funciona a la perfección.
Cuando se implementa en un servidor Windows, no puede compilar las vistas Razor de CSHTML:
El nombre 'nameof' no existe en el contexto actual.
En alemán:
Der Name 'nameof' ist im aktuellen Kontext nicht vorhanden.
He instalado. NET Framework 4.6 ("ASP.NET versión: 4.6.81.0") con no éxito.
Lo más probable es que me esté perdiendo algo simple y llanamente.
Aún así, no tengo ni idea. Es una red.config configuración? O algo más?
Mi pregunta:
¿Cómo habilitar las características de C# 6 (como el operador nameof
) en las vistas Razor de CSHTML?
2 answers
Asegúrese en su archivo " web.config " el nodo system.codedom
existe.
<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>
Y haría referencia al paquete Microsoft.CodeDom.Providers.DotNetCompilerPlatform
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-01 08:28:33
De acuerdo con este sitio, necesita hacer referencia al compilador Roslyn en su Web.archivo de configuración para que las funciones de C# 6 funcionen en las vistas de razor.
Esto se puede lograr simplemente instalando los proveedores de código para el paquete NuGet del compilador.NET.
PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-20 09:34:07