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 で発生します。