web-dev-qa-db-ja.com

ロズリンなしでウェブサイトを公開

Visual Studio 2015および.NET 4.5.1を使用してWebアプリケーションを作成しようとしています。 Webサイトを公開すると、Visual Studioはroslynという名前のフォルダーを作成します。

enter image description here

その場でコードをコンパイルするために使用されていることは知っていますが、残念ながら私のホスティングプロバイダーでは、サーバー上でコンパイラを実行できません。

Visual Studioの以前のバージョンのようにroslynなしでWebサイトを公開するにはどうすればよいですか?

編集:私のウェブサイトにアクセスしようとしたときにこのエラーが発生しました。

enter image description here

IISがroslyn\csc.exeを実行しようとしているようですが、私のユーザーアカウントにはそれを行う権限がありません。 Visual Studioの以前のバージョンでは、このエラーは表示されません。

84
Niyoko Yuliawan

私はちょうど同じ問題に直面しました。新しいWebプロジェクトを作成すると、2つのnugetパッケージがプロジェクトに自動的に追加されます。それらを削除すると、問題が解決するはずです。パッケージ名は、「Microsoft.CodeDom.Providers.DotNetCompilerPlatform」および「Microsoft.Net.Compilers」です。

174
Kemal Kefeli

同じ問題がありました。 here の手順に従いました。基本的に:

  1. パッケージをアンインストールする

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. 公開プロファイルの設定で、「プリコンパイル済みサイトを更新可能にする」のチェックを外します。これは、[設定]> [公開中にプリコンパイル]> [構成]にあります。

13
Midas

数え切れないほどの努力の後....そしてこれによると ウェブサイト 。 MSBuildで/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=falseを使用してweb.configを変換できることがわかりました。これにはビルドにroslynコンパイラも含まれています。出力は、Visual Studioでファイルシステムに発行することで得られるものと同じです。

2
code4j

Roslynリポジトリには、この問題に関する 未解決のバグ があります。

私の場合、dll Microsoft.CodeDom.Providers.DotNetCompilerPlatformをバージョン1.0.6から1.0.5にダウングレードするだけでした。

2
Felipe Miosso

私が直面している同じ発行物を検索した後、私はちょうどここに来ました。私は正しい答えを読みました。

ここ が説明に適した記事であるため、私は答えを与えます:

  1. パブリッシュコードにこのexeと開発環境があるのはなぜですか?
  2. 利点と削除方法は何ですか?

これはこのexeの履歴に関する非常に良い記事でもあります

1
Ajay2707

既存のASP.NETプログラムを引き継いだ2016年9月にも同じ問題が発生しました。ソリューションの異なるプロジェクトにKemalが言及した2つのコンパイラパッケージの複数のバージョンがインストールされていることがわかりました。

そこで、最初に更新して同じものにしました。 VSは、このシナリオでアップデートが利用可能であることをあなたに伝えません(または、私はそれらを見逃したのでしょうか?)

パッケージを適切にクリーンアップするには、VS2015を再起動する必要がありました。

0