web-dev-qa-db-ja.com

CS1617:/ langversionのオプション「6」が無効です。 ISO-1、ISO-2、3、4、5、またはデフォルトでなければなりません

Windows 2008 Serverマシンで新しいASP.NET MVCアプリケーション(VS 2015 Communityからまっすぐ)を実行しているときに、このエラーが発生し続けました。

75
Kyle Carlson

多くの人々がそれに出くわしているので、ここに投稿したかったです。

この男のおかげで、クレイジーで簡単な回避策が見つかりました: Expertdebugger

言語バージョンをC#6からC#5にダウングレードするだけです:

<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.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
          <providerOption name=”CompilerVersion” value=”v4.0″/>
      </compiler>
    </compilers>
  </system.codedom>

langversion:6を下から6から5に変更します-langversion:5

私のためにそれを修正しました。彼に感謝します。

93
Kyle Carlson

C#6.0を使用する場合:

  1. プロジェクトの.NETバージョンが4.5.2以上であることを確認してください。
  2. 次に、.configファイルを確認して、次の変更を実行します。

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>
73
chsword

私の場合、間違ったMSBuild.exeを使用していました。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

エラーを解決するために、PATH環境変数を更新して、Visual Studio 2017 MSBuild.exeの使用を開始しました。

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSbuild.exe

詳細については、このリンクを参照してください: エラーCS1056:tfs継続的統合プロセスでmsbuildを実行している予期しない文字 '$'

7
user8128167

私の場合、エラーの直接的な原因は次のとおりでした。

build -> advanced -> language version

このエラーは、言語に無効なオプションがあることを示しているため、これは理にかなっています。

しかし、これは以前は正常に機能していたため、選択されているに違いありません。何が変わった?私のチームのメンバーが2017年にアップグレードされましたが、私は2015年を使用していました。彼がプロジェクトに変更を加えた後、言語バージョンが変更され、ソース管理を介してその変更を受け取りました。しかし、選択したバージョンは私のバージョンのvsでは利用できなかったため、空白でした-したがってエラー。言語ドロップダウンで値を選択した後(デフォルトを選択しました)、新しいエラーがポップアップしました。新しいエラーにより、C#の新しいバージョンを使用したコード行でビルドエラーが発生していました。同じ機能を実行するようにコードを変更しましたが、C#バージョンの構文と問題は解決しました。

そのため、エラーの直接的な原因は実際には言語バージョンの無効な選択でしたが、根本的な原因は競合するvs/c#バージョンの違いによるものでした。

7
Heriberto Lugo

言語バージョンを6から5に変更する代わりに、コンパイラタグの「type」属性を

Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

私の場合、エラーは次のとおりです。

エラーCS1617/langversionの無効なオプション「latest」。 ISO-1、ISO-2、デフォルト、または1〜6の範囲の整数でなければなりません。

メモ帳で.csprojファイルを開くと、次の行が表示されました。

<PropertyGroup>
    <LangVersion>latest</LangVersion>
</PropertyGroup>

1から6の範囲の整数の最新のものを変更しました

<LangVersion>6</LangVersion>

エラーが消えました!

3
nahuelmisc

Microsoft.Net.Compilers Nugetパッケージを最新バージョン(少なくとも2.x)にアップグレードします。

2
wnbates

langversiondefaultに変更しただけで、うまくいきました。 VS 2015

<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:default /nowarn:1659;1699;1701″>
    <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
  <compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb” type=”Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089″ warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”>
      <providerOption name=”CompilerVersion” value=”v4.0″/>
  </compiler>
</compilers>
0
Kumar

私にとって最も簡単な解決策は、パッケージマネージャを介して.Netコンパイラをアップグレードすることでした

インストールパッケージMicrosoft.Net.Compilers

そして、Web.Config行をこれに変更します

        <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>
0
Mike

Microsoft.Net.Compilersをバージョン2.0以降に更新しました

こちらを参照

0
davcup

この場合、vs 2019を使用してみてください、助けてほしい

0