VS 2015社区版- 发布失败,因为存在构建错误。

13

CLR-x86-1.0.0-beta7-15532

VS community v14.0.23107.0

试图将Web API应用程序发布到本地文件夹,但在“正在复制到输出路径C:\ temp \ PublishTemp”后立即收到以下消息:

由于构建错误,发布失败。有关详细信息,请检查错误列表。

但是,没有构建错误或警告。

如果我创建一个新的Web应用程序,它可以无问题地发布到我的测试文件夹。

我应该从哪里开始排除故障?

5个回答

28
在 Visual Studio 中,转到“工具”>“选项”,并增加 MSBuild 输出详细程度。 这将使用所有所需信息淹没“输出”窗口日志:

在这里输入图片描述


我遇到了和@proggrock一样的问题。我可以构建解决方案,但是当我尝试发布时,VS显示错误对话框上没有任何细节的“构建失败”错误。我按照您的说明进行操作,希望看到是什么导致了“构建失败”的问题,但出乎意料的是,VS决定我可以发布。谢谢! - Rafael Araújo

3
看起来你缺少一个在项目中包含但在预期位置上不存在的文件。这可能会发生在你从Visual Studio之外移动或删除文件时(通常是非编译资源,例如 .js、.css、.txt 等文件)。如果是这种情况,请尝试以下解决方法:
  1. 在 Visual Studio 中找到缺失的文件(它应该具有黄色警告图标)。
  2. 右键单击该文件,然后选择“从项目中排除”。如果你不需要该文件,则已经解决问题。如果你需要该文件,请从 Visual Studio 中再次添加它。
希望能对你有所帮助。

3
我曾经遇到过同样的问题,但是接受的解决方案并没有帮助我,因为问题出在发布上面,而不是构建(尽管错误信息表明了相反)。我尝试了接受的解决方案,但它并没有帮助我,因为构建时没有出现任何错误。
对我来说,有两个解决方案可供选择:
  1. 删除发布配置文件中“发布时删除现有文件”的选项
  2. 确保目标机器上没有阻止文件删除 - 或者更重要的是,防止目录被删除的东西
我在服务器上打开了一个命令提示符窗口,该窗口位于项目目录中的一个文件夹中,这阻止了该文件夹被删除。

2
听起来像是权限问题,如果在复制部分发生了这种情况或者有些东西阻止了复制(现有文件被锁定?),如果您以管理员身份启动VS,则应该可以解决权限问题。
编译器总是构建到中间目录,例如obj\configname。在构建过程结束时,项目系统会将文件从中间目录复制到项目输出目录。
以下是解决此错误的方法:
  1. 重新启动Visual Studio。
  2. 如果您正在使用Web项目,请重启Web服务器。
  3. 程序可能正在运行,与此同时您也在尝试构建它。如果是这种情况,请退出程序并重新构建。
  4. 如果项目引用另一个项目的输出作为文件引用,并关闭了该引用的“复制本地”属性,则可能会导致引用构建文件的项目锁定该文件。要解决此问题,请在“属性”窗口中将“复制本地”属性设置为true。

0

对我来说,错误在于它试图发布的文件夹不存在(很奇怪),并且缺乏管理员权限。因此,解决方案是:


  1. 检查是否发布在现有文件夹中
  2. 以管理员权限启动VS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接