Visual Studio 2017でWebアプリケーションを公開しようとしています。ビルドは成功しますが、公開は失敗します。失敗すると、「発行でエラーが発生しました。ビルドに失敗しました。診断ログが次の場所に書き込まれました:..」というエラーダイアログが表示されます。
これは、ログを含むファイルに含まれるものです。
System.AggregateException: One or more errors occurred. ---> System.Exception: Build failed. Check the Output window for more details. --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass41_0.<PublishAsync>b__2() at System.Threading.Tasks.Task``1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__116.MoveNext() ---> (Inner Exception #0) System.Exception: Build failed. Check the Output window for more details.
アプリケーションを管理者として実行しようとしましたが、それでも機能しません。 Microsoft.Net.Compilers参照も検索しましたが、プロジェクトにはありません。
これは user11952046
の回答(VSで何度もトライアルを行った後で見ました)と詳細。
パブリッシュプロファイルがターゲットフレームワークとして3.1ではなく.NET Core 3.0を使用していることに気付いた後、同じエラーに遭遇しました(すべてのアセンブリが3.1をターゲットとしていました)。関連があるかどうかはわかりませんが、(Startup.csを含む)メインアセンブリからdbコンテキスト+移行も移動しました。
私の開発環境はVS2019です。
公開がローカルIISで機能することを再確認しました。それには、VS 2019(管理者)の昇格が必要でした。
昇格中、ターゲットWebサーバー(IIS)で公開しましたが、期待どおりに機能しました。
終了せずに昇格せずに再起動し、再度公開すると動作しました。
何が起こったのかはわかりませんが、昇格が必要なファイルを変更するためにパブリッシュに1回限りの要件があったと思います。
tl; dr-管理者として開始されたVS2019を使用して少なくとも1つのパブリッシュを作成すると、非管理者モードを使用してパブリッシュできます。
YourProject\Properties\PublishProfilesにあるFolderProfile.pubxmlファイルを見て、用語が正しいバージョンで設定されていることを確認してください。
Resharperを無効にすると問題が解決しました!!!
これを無効にする方法は次のとおりです Visual StudioでReSharperを無効にして再度有効にするにはどうすればよいですか?
また、一部のブログでは、MSBILDツールを更新すると問題が解決すると主張しています。私にとっては、Resharperを無効にするだけでうまくいきました。
https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017 から最新バージョンのMSBUILDツールをダウンロードして実行し、[変更]を選択して、[Web開発ビルドツール」および「.NET Coreビルドツール」。
実際、多くの理由がこの問題を引き起こします。 ASP.NETフォーラムには、この問題を解決するための非常に役立つヒントがあります。この手順に従うことができます。 ここ が手順です。
Azure App Serviceに公開しようとしたときに、同じ問題に直面しました。私にとって、フィドラーを閉じることで問題は解決しました。
この問題には多くの原因があります。 IIS Webサイト、およびユーザーに適切な権限を既に構成しています。プロジェクトはローカルマシンで正常にビルドされました。問題は、サイトに絶対Windowsパスを追加したことです。 VS公開プロファイルの「パス」セクション。これは空のままにしてください!
MSBUILDツールのLastVersionをダウンロードします。プロジェクトをビルドし、エラーリストで[ビルド] + [IntelliSense]を選択し、存在する場合はエラーメッセージを表示します。 NugetからSystem.Reflection.Emitをダウンロードして、もう一度プロジェクトを公開してください。
デバッグモードでプロジェクトを実行できるという同様の問題に直面しましたが、公開したいときはいつでもビルド失敗の問題に直面しました。
これは同じ問題に直面している人に役立つと思います
プロジェクトパスが長い場合は、プロジェクトを短いパスに移動してみてください。次に例を示します。プロジェクトパスをC:\Users\xxxx\xxxx\xxxx\project1
からC:\Users\xxxx\project1
に変更します
私にとってそれはFiddlerを開いていて、VSがその公開証明書を好きでなかったので起こっていました。 Fiddlerを閉じると、ソリューションが正常に公開されました。