Подтвердить что ты не робот

Использование оператора "nameof" в представлении "Бритва"

На моей машине разработки VS.NET 2015 вид Razor, использующий оператор nameof, работает как прелесть.

При развертывании на сервере Windows он не может скомпилировать представления RHRT CSHTML:

Имя 'nameof' не существует в текущем контексте.

По-немецки:

Der Name 'nameof' ist im aktuellen Kontext nicht vorhanden.

Я установил .NET Framework 4.6 ( "Версия ASP.NET: 4.6.81.0" ) без успеха.

Скорее всего, я пропустил что-то простое.

Тем не менее, я действительно невежественный. Это настройка web.config? Или что-то еще?

Мой вопрос:

Как включить функции С# 6 (например, оператор nameof) в представлениях Razor CSHTML?

4b9b3361

Ответ 1

Убедитесь, что в вашем файле: web.config node system.codedom существует

<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=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>
 </system.codedom>

И вы будете ссылаться на пакет Microsoft.CodeDom.Providers.DotNetCompilerPlatform.

Ответ 2

В соответствии с этим сайтом вам необходимо обратиться к компилятору Roslyn в файле Web.config, чтобы получить возможности С# 6 для работы в ваших бритвенных представлениях.

Это может быть достигнуто просто путем установки Провайдеров CodeDOM для пакета .NET Compiler NuGet.

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform