我现在正在工作的应用程序是在 VS 2015 中开发的。我尝试在 VS 2019 中运行相同的应用程序,构建成功,但在尝试通过 FTP / 发布到本地文件夹时失败。
诊断日志已写入以下位置的 .tmp 文件。
System.AggregateException:发生一个或多个错误。
System.Exception:构建失败。检查输出窗口以获取更多详细信息。
--- 内部异常堆栈跟踪结束 ---在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
在System.Threading.Tasks.Task.Wait(Int32毫秒超时,CancellationToken取消令牌)
在 Microsoft.WebTools.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass43_0.b__3()
在 System.Threading.Tasks.Task`1.InnerInvoke()
在 System.Threading.Tasks.Task.Execute()
--- 从先前抛出异常的位置开始的堆栈跟踪结束 ---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
在 Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__213.MoveNext()(内部异常#0)System.Exception:构建失败。检查输出窗口以获取更多详细信息。
System.Exception:构建失败。检查输出窗口以获取更多详细信息。
以下是输出窗口中的详细信息。
1>------ Build started: Project: EmpDetails.BAL, Configuration: Release Any CPU ------
1> EmpDetails.BAL -> C:\Test\Projects\source\repos\Project\EmpDetails.BAL\bin\Release\EmpDetails.BAL.dll
2>------ Build started: Project: EmployeeDetails, Configuration: Release Any CPU ------
2> EmployeeDetails -> C:\Test\Projects\source\repos\Project\EmployeeDetails\bin\EmployeeDetails.dll
3>------ Publish started: Project: EmployeeDetails, Configuration: Release Any CPU ------
3>Connecting to C:\Test\Projects\ProjName\Published Website...
3>
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========
我用谷歌搜索了同样的内容并尝试了以下方法
没有任何作用。
但是当我在 VS 2019 中创建示例应用程序时,我就可以发布它了。
只是一个想法,我是否必须更改/更新 Web.config 文件中的任何内容。
过去两天我一直在努力解决这个问题。怎么解决?
最近我在 Visual Studio 2022 中遇到了类似的问题。在
publish
过程结束时,我收到构建失败的错误,并要求我检查生成的 temp
文件以获取更多详细信息,它看起来像下面,
System.AggregateException: One or more errors occurred. ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.
--- End of inner exception stack trace ---
---> (Inner Exception #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.<---
Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.
===================
在输出窗口中,显示复制一些文件时出现问题,因为即使文件位于目录中,系统也无法找到这些文件。
就我而言,问题是,这些文件的路径太长。所以我更改了根文件夹t并且它发布成功了。
在 Windows API 中(除了以下段落中讨论的一些例外情况),路径的最大长度是 MAX_PATH,定义为 260 个字符。本地路径按以下顺序构造:驱动器号、冒号、反斜杠、由反斜杠分隔的名称组件以及终止空字符。例如,驱动器 D 上的最大路径是“D:\some 256-character path string”,其中“”表示当前系统代码页的不可见终止空字符。 (此处使用字符 < > 是为了视觉清晰,并且不能是有效路径字符串的一部分。)
Microsoft 文档:最大路径长度限制
可能对某人有帮助。当我发布我的应用程序时,我也遇到了同样的问题。奇怪的是,当我将其添加到 .csproj 文件中的包引用中时,它就解决了
<PackageReference Include="EFCore.BulkExtensions" Version="5.2.8" />
添加此包引用后,当我重建并发布时,它正在工作。
在我的例子中,这个错误是因为项目(csproj)中存在一些文件但被物理删除。将它们从项目中删除并再次发布。
此外,在输出窗口中显示错误的描述。
在我的例子中,我有图像目录,其中包含大文件,所以我只需从解决方案中排除并重新发布,然后它就可以成功发布。
就我而言,我将 Visual Studio 升级到最新版本,并将解决方案更改为引用 .Net Framework 8.0。
我在发布时遇到了与之前完全相同的错误。
我发布了一个依赖于框架的可执行文件,并且这有效。然后我切换回独立的可执行文件,现在它可以工作了。
其他一切都没有改变。我本来想尝试这篇文章中的一些建议,但似乎不需要。
对我来说,问题是选择 Linux-x64 平台,因为我想发布到基于 Linux 的 Azure Web 应用程序。
回到便携式或选择 Windows 运行时和目标可以解决问题。
还值得检查解决方案中依赖项目的输出类型是类库而不是其他