Visual Studio 2015および.NET 4.5.1を使用してWebアプリケーションを作成しようとしています。 Webサイトを公開すると、Visual Studioはroslyn
という名前のフォルダーを作成します。
その場でコードをコンパイルするために使用されていることは知っていますが、残念ながら私のホスティングプロバイダーでは、サーバー上でコンパイラを実行できません。
Visual Studioの以前のバージョンのようにroslyn
なしでWebサイトを公開するにはどうすればよいですか?
編集:私のウェブサイトにアクセスしようとしたときにこのエラーが発生しました。
IISがroslyn\csc.exe
を実行しようとしているようですが、私のユーザーアカウントにはそれを行う権限がありません。 Visual Studioの以前のバージョンでは、このエラーは表示されません。
私はちょうど同じ問題に直面しました。新しいWebプロジェクトを作成すると、2つのnugetパッケージがプロジェクトに自動的に追加されます。それらを削除すると、問題が解決するはずです。パッケージ名は、「Microsoft.CodeDom.Providers.DotNetCompilerPlatform」および「Microsoft.Net.Compilers」です。
同じ問題がありました。 here の手順に従いました。基本的に:
パッケージをアンインストールする
Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
公開プロファイルの設定で、「プリコンパイル済みサイトを更新可能にする」のチェックを外します。これは、[設定]> [公開中にプリコンパイル]> [構成]にあります。
数え切れないほどの努力の後....そしてこれによると ウェブサイト 。 MSBuildで/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false
を使用してweb.configを変換できることがわかりました。これにはビルドにroslynコンパイラも含まれています。出力は、Visual Studioでファイルシステムに発行することで得られるものと同じです。
Roslynリポジトリには、この問題に関する 未解決のバグ があります。
私の場合、dll Microsoft.CodeDom.Providers.DotNetCompilerPlatform
をバージョン1.0.6
から1.0.5
にダウングレードするだけでした。
私が直面している同じ発行物を検索した後、私はちょうどここに来ました。私は正しい答えを読みました。
ここ が説明に適した記事であるため、私は答えを与えます:
既存のASP.NETプログラムを引き継いだ2016年9月にも同じ問題が発生しました。ソリューションの異なるプロジェクトにKemalが言及した2つのコンパイラパッケージの複数のバージョンがインストールされていることがわかりました。
そこで、最初に更新して同じものにしました。 VSは、このシナリオでアップデートが利用可能であることをあなたに伝えません(または、私はそれらを見逃したのでしょうか?)
パッケージを適切にクリーンアップするには、VS2015を再起動する必要がありました。