15

我正在尝试在 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参考,但它不在我的项目中。

4

17 回答 17

11

确保选择了 Build + Intellisense,而不仅仅是 Build Only。这样您就可以看到可能隐藏在那里的其他错误。

在此处输入图像描述

于 2019-10-22T20:22:33.960 回答
5

尝试以管理员身份打开 Visual Studio。

于 2021-02-25T20:22:05.707 回答
4

请提供 iuser 的读写权限。通过右键单击文件夹 > 属性 > 安全选项卡,您要在其中发布的文件夹

于 2018-12-01T08:15:05.727 回答
2

这是因为管理员权限,在 Visual Studio 中以管理模式打开解决方案并发布它将工作的解决方案,并确保已发布的文件夹具有读写访问权限。

于 2019-08-20T13:59:56.810 回答
2

如果您以管理员权限打开 vs,并且如果您发布文件夹具有所有读/写权限,您可能需要从.csproj文件中删除缺少的引用

  1. 卸载你的项目
  2. 右键编辑.csproj
  3. 删除当前项目不再引用/使用的所有包含文件
  4. 重新加载您的项目
  5. 尝试再次发布...
于 2020-12-20T12:55:06.337 回答
2

这是user11952046's 的答案(我在用 VS 进行多次试验后看到的)有更多细节。

在意识到我的发布配置文件使用 .NET Core 3.0 作为目标框架而不是 3.1(所有程序集都针对 3.1)后,我偶然发现了同样的错误。不确定它是否相关,但我还从主程序集(包含 Startup.cs)中移动了 db 上下文 + 迁移。

我的开发环境是VS2019。

  1. 仔细检查发布适用于本地 IIS。这需要提升 VS 2019(管理员)。

  2. 在提升的同时,我已在目标 Web 服务器 (IIS) 上发布,并且它按预期工作。

  3. 关闭并重新启动而没有提升并再次发布并且它有效。

我不确定发生了什么,但我想发布有一个一次性的要求来更改一些需要提升的文件。

tl;dr - 使用 VS2019 至少发布一次,以管理员身份启动,然后您可以使用非管理员模式发布。

于 2020-02-01T16:09:54.110 回答
1

我已将项目框架形式从 4.0 升级到 4.7.2 在尝试发布服务时遇到了同样的问题,通过在项目的 .cproj 文件中添加以下标签来解决

卸载项目>>编辑项目文件

在以下行中更新 ToolsVersion="15.0"

<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

然后在上面的行之后添加下面的行

 <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />


      <PropertyGroup>   
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>  
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
  </PropertyGroup>

在以下行之前添加上面

  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

在上面之后添加以下行

   <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false"/>

这个解决方案对我有用,能够在将框架从 4.0 升级到 4.7.2 后发布 wcf 项目

于 2020-05-22T05:40:41.083 回答
0

我遇到了同样的问题,发布时出现错误:

System.AggregateException: One or more errors occurred. 
---> System.Exception: Build failed. Check the Output window for more details.
   --- End of inner exception stack trace ------> (Inner Exception #0)"

解决方案:在文件资源管理器中,出版物的共享驱动器目标已断开连接。重新连接驱动器后,错误消失并继续发布。

于 2020-06-19T15:48:58.977 回答
0

禁用 Resharper 为我解决了这个问题!!!

以下是如何禁用它 如何在 Visual Studio 中禁用 ReSharper 并再次启用它?

还有一些博客声称更新 MSBILD 工具将解决这个问题。对我来说,只是禁用 Resharper 就可以了。

从https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017下载最新版本的 MSBUILD 工具,运行它,选择修改,然后选择“Web 开发构建工具”和“. NET Core 构建工具”。

于 2019-11-08T15:28:40.440 回答
0

我解决了从我的项目中删除文件夹(“node_modules”)的相同问题。此文件夹中的路径太长

于 2021-10-26T07:53:22.747 回答
0

我遇到了同样的“构建失败”问题。

我所做的只是在AppDbContext下面启用Entity Framework Migrations并提供连接字符串

截屏

于 2020-06-16T10:55:08.437 回答
0

这更有可能是因为您对尝试发布的特定文件夹没有完全的权限控制步骤:1)右键单击您尝试发布的文件夹 2)转到安全性 3)单击编辑并添加您当前的用户登录,例如(域\用户名) 4)单击完全控制复选框并保存 5)然后尝试发布

在此处输入图像描述

于 2020-03-14T13:48:14.747 回答
-1

这个问题有很多原因。我已经配置了 IIS 网站,以及用户的正确权限。显然,该项目在我的本地机器上成功构建。问题是我在 VS 发布配置文件的“站点路径”部分添加了绝对 Windows 路径。把这个留空!

于 2020-02-16T11:18:46.220 回答
-1

我遇到了一个类似的问题,我可以在调试模式下运行我的项目,但是每当我想发布时,我都会遇到构建失败的问题。

我认为这将帮助面临同样问题的人

如果您的项目路径很长,请尝试将项目移动到较短的路径。这是一个示例,将项目路径从更改C:\Users\xxxx\xxxx\xxxx\project1C:\Users\xxxx\project1

于 2020-01-13T14:43:54.110 回答
-1

下载最后版本的 MSBUILD 工具。构建您的项目并在错误列表中选择 Build + IntelliSense 并显示消息 Error if exists 。并从 Nuget 下载 System.Reflection.Emit 再次尝试发布您的项目。

于 2019-12-23T07:24:20.593 回答
-1

查看位于 YourProject\Properties\PublishProfiles 中的 FolderProfile.pubxml 文件,并确保使用正确的版本配置术语。

于 2019-12-28T11:45:36.267 回答
-2

我在尝试发布到 Azure 应用服务时遇到了同样的问题。对我来说,关闭 Fiddler 解决了这个问题。

于 2020-02-23T23:01:30.953 回答