Windows 2008 Serverマシンで新しいASP.NET MVCアプリケーション(VS 2015 Communityからまっすぐ)を実行しているときに、このエラーが発生し続けました。
多くの人々がそれに出くわしているので、ここに投稿したかったです。
この男のおかげで、クレイジーで簡単な回避策が見つかりました: 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=\"Web\" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0″/>
</compiler>
</compilers>
</system.codedom>
langversion:6
を下から6から5に変更します-langversion:5
私のためにそれを修正しました。彼に感謝します。
C#6.0を使用する場合:
.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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
私の場合、間違った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を実行している予期しない文字 '$'
私の場合、エラーの直接的な原因は次のとおりでした。
このエラーは、言語に無効なオプションがあることを示しているため、これは理にかなっています。
しかし、これは以前は正常に機能していたため、選択されているに違いありません。何が変わった?私のチームのメンバーが2017年にアップグレードされましたが、私は2015年を使用していました。彼がプロジェクトに変更を加えた後、言語バージョンが変更され、ソース管理を介してその変更を受け取りました。しかし、選択したバージョンは私のバージョンのvsでは利用できなかったため、空白でした-したがってエラー。言語ドロップダウンで値を選択した後(デフォルトを選択しました)、新しいエラーがポップアップしました。新しいエラーにより、C#の新しいバージョンを使用したコード行でビルドエラーが発生していました。同じ機能を実行するようにコードを変更しましたが、C#バージョンの構文と問題は解決しました。
そのため、エラーの直接的な原因は実際には言語バージョンの無効な選択でしたが、根本的な原因は競合するvs/c#バージョンの違いによるものでした。
言語バージョンを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>
エラーが消えました!
Microsoft.Net.Compilers Nugetパッケージを最新バージョン(少なくとも2.x)にアップグレードします。
langversion
をdefault
に変更しただけで、うまくいきました。 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=\"Web\" /optionInfer+”>
<providerOption name=”CompilerVersion” value=”v4.0″/>
</compiler>
</compilers>
私にとって最も簡単な解決策は、パッケージマネージャを介して.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=\"Web\" /optionInfer+" />
</compilers>
</system.codedom>
Microsoft.Net.Compilersをバージョン2.0以降に更新しました
この場合、vs 2019を使用してみてください、助けてほしい