パスの一部が見つかりませんでした...bin\roslyn\csc.exe 質問する

パスの一部が見つかりませんでした...bin\roslyn\csc.exe 質問する

TFS (Team Foundation Server) ソース管理から取得した ASP.NET MVC (モデル ビュー コントローラー) プロジェクトを実行しようとしています。すべてのアセンブリ参照を追加し、エラーや警告なしで正常にビルドおよびコンパイルできました。

しかし、ブラウザに次のエラーが表示されます。

パス 'C:\B8akWorkspace\B8akProject\B8akSolution\B8AK.Portal\bin\roslyn\csc.exe' の一部が見つかりませんでした。

以下はエラー ページの完全なスクリーンショットです。

ここに画像の説明を入力してください

数日間の調査の後、私はロザリンは、高度なコンパイル機能を提供する .NET コンパイラ プラットフォームです。ただし、Roslyn に関連する設定を何も行っていないため、ビルドが \bin\roslyn\csc.exe を検索しようとしている理由がわかりません。また、プロジェクトで Roslyn を使用するつもりもありませんでした。

ベストアンサー1

TL; DR

パッケージ マネージャー コンソールでこれを実行します。

Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r

詳しくは

この問題は Visual Studio 自体には関係がないため、ファイルをコピーするためのビルド手順を追加することを提案する回答は、むしろ回避策です。コンパイラ バイナリをプロジェクトに手動で追加する場合も同様です。

Roslyn コンパイラは NuGet パッケージから提供されており、そのパッケージの一部のバージョンにはバグがあります (どのバージョンかは正確にはわかりません)。解決策は、そのパッケージを再インストールするか、バグのないバージョンにアップグレードすることです。2015 年に回答を書く前は、特定のバージョンで次のパッケージをインストールすることで修正しました。

  • Microsoft.Net.コンパイラ 1.1.1
  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.1

次に、.csproj を調べて、<ImportProject>上部のタグ内と<Target>下部の "EnsureNuGetPackageBuildImports" という名前のパッケージへのパス (私の場合は ..\..\packages\*.*) が正しいことを確認しました。これは MVC 5 および .NET Framework 4.5.2 で発生します。

おすすめ記事