web-dev-qa-db-ja.com

WPF .NET Core 3.1アプリケーションで単一ファイルの公開(リリース)が失敗する

Win-x86をターゲットとする単一ファイルの公開を使用して、.NET Core 3.1をターゲットとするWPFアプリケーションを(フォルダーに)公開しようとしています。アプリケーションはデバッグでは問題なく公開されますが、リリースでは失敗します。 [単一ファイルの生成]を選択解除すると、パブリッシュは正常に機能します。 Visual Studio 2019(16.4.1およびプレビュー16.5.1)を使用しています

公開すると、この一般的なエラーが発生します。

パブリッシュでエラーが発生しました。パブリッシュでエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

診断ログが次の場所に書き込まれました: "C:\ Users\username\AppData\Local\Temp\tmpD176.tmp"

さらに、あまり役に立たないログファイル:

System.AggregateException: One or more errors occurred. ---> System.Exception: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log 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.Publish.Framework.Model.DefaultPublishSteps.<>c__DisplayClass26_0.<IsBuildCompletedSuccessfully>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.Publish.Framework.Model.DefaultPublishSteps.<DefaultCorePublishStep>d__23.MoveNext()
--- 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.Publish.Framework.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__156.MoveNext()
---> (Inner Exception #0) System.Exception: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. <---

System.Exception: Publish has encountered an error. We were unable to determine the cause of the error. Check the output log for more details. 

私は この質問 を見つけました。これは、Visual Studioのタイムアウトの問題である可能性があることを示唆していますが、その問題はAzureに関連しています。私はこれも見つけました Githubの問題 ReadyToRunで公開しようとしたときに同様のことを示しました。

数週間前に成功し、最小限の変更で公開しました。これはVisual Studioの問題ですか?これは参照とNuGetパッケージの問題である可能性があることを理解していますが、この問題の核心に到達するためのどこから始めればよいのか本当にわかりません...公開では、問題の原因となる可能性のある有用な情報が提供されません。何か案は?

2
VirtualValentin

私はWPFアプリケーションで同じ問題を抱えていました:

VS2019 16.3およびdotnet Core 3.0-パブリッシュは正常に機能しました。

VS2019 16.4.1およびdotnet Core 3.1に更新-説明どおりに発行できませんでした。

唯一の違いは、X64をターゲットにしていることです。

公開用のFolderProfileの編集を何度も試みた後(どれも問題を修正しませんでした)、FolderProfileを完全に削除し、別のフォルダーを対象とする新しいフォルダープロファイルを作成しました。

パブリッシュが再び機能します。

お役に立てれば。

1
MaxTheCoder

私にとってエラーは、Azure DevOps Artifactsなどのカスタムnugetソースに関係しています。ビルドスクリプトがAzure DevOpsからnugetsを復元しようとすると、(Unauthorized)エラーで失敗し、投稿にエラーが発生する場合があります。

カスタムnugetソースを一時的に無効にして、単一ファイルのように使用されるオプションに関係なく、パブリッシュを再度機能させます。

1
Andre Morais

同じ問題が発生しますが、「PublishSingleFile」を設定すると、プロジェクトがビルドできなくても関係していると思います。

.net core 3.0が正常に公開されているので、それは彼らの側のバグであると想定して、 comment をgithubの問題の投稿に追加しました。

0
Alienator