ロザリンなしでウェブサイトを公開する


91

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

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

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

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

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

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

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


また、RoslynはDLLのセットにすぎません。ホストは彼らが何をしているのかを知り、気にすることができません。
SLaks、2015

3
@Slaks IISがcsc.exeを実行しようとしています。編集を参照してください。
Niyoko Yuliawan 2015

Pleskを使用している場合は、「Webサイト専用のIISアプリケーションプール」を無効にすれば、それらのパッケージを削除する必要すらありません。
Vahid Amiri、2015年

回答:


183

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


これは機能し、サードパーティのWebホスティングプロバイダーに適しています。これについて2つの質問があります。1)これらのNugetパッケージを削除すると、製品に何らかの影響がありますか?2)これらのパッケージをプロジェクトテンプレート自体から削除して、毎回この演習を回避できますか?
ヌラ

1)製品のワークフローやロジックに影響はありません。しかし、@ Ajay2707によって提供されるURL(itorian.com/2015/09/roslyn-cscexe-and-vbcexe-deployment-on.html)は、このパッケージがページの読み込み時間に影響を与えると言っています。2)どうすればいいのかわかりませんが、できれば問題ありません。
Kemal Kefeli 2016年

3
両方のNuGetパッケージを削除しました。構成宣言を削除しました。それでも、このフォルダーはコンパイルまたは公開中に作成されています。私のアプリケーションが使用しているNuGetパッケージのみが "Newtonsoft.Json"です。それもアンインストールする必要がありますか?
Ranjan Kumar

8
これらのパッケージを削除すると、C#6の機能が使用できなくなることに注意してください。これは、ビューを事前にコンパイルする「プリコンパイル済みサイトを更新可能にする」の
チェックを外す

9
@RanjanKumar:テキストエディターでcsprojファイルを開き、Kemalの回答に記載されているNuGetパッケージに対応するノードを削除します。これには、Importノード、Targetノード(EnsureNugetPackageBuildImports)、およびReferenceノードが含まれる場合 があります。また<system.codedom>、web.config のノードを削除します。
Brian

16

同じ問題がありました。ここからの手順に従ってください。基本的に:

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

    Uninstall-package Microsoft.CodeDom.Providers.DotNetCompilerPlatform <Your Web API project name>
    
  2. パブリッシュプロファイル設定で、[プリコンパイル済みサイトの更新を許可する]をオフにします。これは、[設定]> [発行中のプリコンパイル]> [構成]にあります。


7
この方法では、ビューでC#6機能を使用できません。
RokX 2017

2

私が直面する同じ発行されたものを検索した後、私はちょうどここに来ました。上記の正しい答えを読んだ。

ここに説明するのに良い記事があるので、私は答えを出します:

  1. なぜパブリッシュコードにこのexeと開発環境があるのですか?
  2. メリットは何ですか、またどのように削除しますか?

これは、このexeの歴史についての非常に良い記事でもあります


2

無数の努力の後....そしてこのウェブサイトによると。/p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=falseMSBuildでweb.configを変換できることがわかりました。これには、ビルドにroslynコンパイラも含まれています。出力は、Visual Studioでファイルシステムにパブリッシュした場合と同じです。


Webリンク上の記事を理解できませんが、MSBuildでビルドパラメータを追加するためのアドバイスに従ってください。あなたが言ったように、出力はファイルシステムに公開するときと同じです。ありがとう
Bruce

2

この問題については、roslynリポジトリに未解決のバグがあります。

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


0

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

したがって、最初にそれらを同じにするために更新しました。VSは、このシナリオで更新が利用可能であることを通知しません(または、私はそれらを逃したのでしょうか?)

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.