C# WPF.NET Core 3.1应用程序发布单个文件(版本)失败

C# WPF.NET Core 3.1应用程序发布单个文件(版本)失败,c#,wpf,visual-studio,.net-core,.net-core-3.1,C#,Wpf,Visual Studio,.net Core,.net Core 3.1,我正试图发布一个WPF应用程序(到一个文件夹),目标是.NETCore3.1,目标是win-x86,使用发布单个文件。应用程序发布时可以进行调试,但发布时失败。如果取消选择“生成单个文件”,则发布工作正常。我正在使用Visual Studio 2019(16.4.1和预览版16.5.1) 我在发布时遇到此一般错误: 发布遇到错误。发布遇到错误。我们 无法确定错误的原因。检查输出日志 更多细节 诊断日志已写入以下位置: “C:\Users\username\AppData\Local\Temp\t

我正试图发布一个WPF应用程序(到一个文件夹),目标是.NETCore3.1,目标是win-x86,使用发布单个文件。应用程序发布时可以进行调试,但发布时失败。如果取消选择“生成单个文件”,则发布工作正常。我正在使用Visual Studio 2019(16.4.1和预览版16.5.1)

我在发布时遇到此一般错误:

发布遇到错误。发布遇到错误。我们 无法确定错误的原因。检查输出日志 更多细节

诊断日志已写入以下位置: “C:\Users\username\AppData\Local\Temp\tmpD176.tmp”

加上一个不太有用的日志文件:

System.AggregateException:发生一个或多个错误。-->System.Exception:发布遇到错误。我们无法确定错误的原因。有关更多详细信息,请查看输出日志。
---内部异常堆栈跟踪的结束---
位于System.Threading.Tasks.Task.ThrowifeException(布尔值IncludeTaskCanceledException)
在System.Threading.Tasks.Task.Wait(Int32毫秒计时,CancellationToken CancellationToken)
在Microsoft.Publish.Framework.Model.DefaultPublishSteps.c__DisplayClass26_0.b__2()中
在System.Threading.Tasks.Task`1.InnerInvoke()中
在System.Threading.Tasks.Task.Execute()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在Microsoft.Publish.Framework.Model.DefaultPublishSteps.d_u23.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d_u156.MoveNext()中

--->(内部异常#0)系统。异常:发布遇到错误。我们无法确定错误的原因。有关更多详细信息,请查看输出日志 我在WPF应用程序中遇到了相同的问题:

VS2019 16.3和dotnet Core 3.0-发布工作正常

更新至VS2019 16.4.1和dotnet Core 3.1-发布失败,如上所述

唯一的区别是我的目标是X64

在多次尝试编辑publish FolderProfile(没有一次修复该问题)之后,我完全删除了FolderProfile,并针对不同的文件夹创建了一个新的FolderProfile

再次出版作品


希望这有帮助

我也遇到了同样的问题,但我认为我的问题与我设置“PublishSingleFile”时无法构建的项目有关


我在他们的github问题帖子中添加了一个错误,假设这是他们的一个错误,因为.net core 3.0对我来说发布得很好。

对我来说,错误与自定义nuget源有关,比如Azure DevOps工件。 有时,构建脚本尝试从Azure DevOps还原nugets,但失败时出现(未经授权的)错误,这会在post中产生错误


暂时禁用自定义nuget源代码,使发布重新工作,而不考虑使用的选项,如单个文件。

我有一个相同的问题,在我的情况下,解决方案是从.csproj文件中删除X86系统的一些dll:

<ItemGroup>
    <Reference Include="System.Management">
      <HintPath>..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Management.dll</HintPath>
    </Reference>
  </ItemGroup> 

..\..\..\程序文件(x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.Management.dll

检查您的Internet连接是值得的。我发布自包含部署时遇到问题,因为我在公司防火墙后面。与您的错误相同:

发布遇到错误。我们无法确定结果 错误的原因。有关更多详细信息,请查看输出日志


日志文件中没有更多信息。断开连接后,VPN应用程序发布时没有出现任何错误。

您是否尝试使用
dotnet
CLI从命令行发布它?@mm8谢谢,这有助于提供更多信息,但仍然无法解决问题。我怀疑这个问题可能与Visual Studio有关。不知何故,这对我来说是有效的。但只是有时候。在恢复到.net core 3.0之后,我能够发布,但是当我将运行时切换到64和86之间时,它遇到了相同的问题。切换回也再次遇到相同的错误。我正试着玩弄它,看看是什么触发了这一点,但我现在似乎无法重现这个错误。对我来说,有效的方法是清除我的NuGet缓存(并在必要时删除NuGet文件夹)。我会继续调查,如果我能追踪到这个问题并重现它,我会在这里提及。进一步更新:后续版本仍存在间歇性问题。解决方案:删除bin、obj和publish文件夹。然后重建并创建新的发布文件夹。然后似乎出版OK