1

In Visual Studio 2010, I have just one project that cannot be published using the "Publish Now" button.

enter image description here

enter image description here

If I publish using the menu option instead, it works fine. I can then increment the version number, click "Publish Now" (or use "Publish Wizard..."), and get this error:

Cannot publish because a project failed to build.

However, no other error message is given. I managed to get screenshots of the output screen before it clears and flips to the Error List tab, but there is no mention there of any error. Clean & Rebuild doesn't fix the problem.

What do these two options do differently? Why is the build failing one way but not the other?

4

3 回答 3

3

由于“重建解决方案”和“清洁解决方案”没有解决这些问题,它可能是 Bin 中的日志或程序集。

此错误似乎是由各种问题引起的:

解决方案 1.在 Visual Studio 2010 中,从菜单 Tools->Options->Project and Solutions->Build and Run 将构建日志详细程度设置为 Diagnostic。

之后,如果您构建并发布项目,您可以从“输出”窗口查看详细的构建日志。从那里,我们应该获得有关它为什么无法构建的更多信息。

解决方案 2. 您是否碰巧拥有 Google 桌面?如果这样做,请关闭侧边栏并尝试一次。

解决方案 3. 单击此处获取另一个解决方案

解决方案 4.您是否与来自其他时区的人一起工作?将来修改的文件也可能导致此问题。检查此实用程序

解决方案 5.
我建议您尝试在安全模式下运行 Visual Studio,这将强制 Visual Studio 仅加载默认环境和服务,以及第三方软件包的发布版本。如果问题消失了,您可能会坚持使用带有错误的某些版本的 IDE 工具。然后更新它们。

如果似乎没有任何效果,试试这个。 *解决方案 6 * 经过研究,似乎 Visual Studio(在我们的案例中为 2010)使用的内置构建/发布脚本在执行操作的顺序上存在缺陷。最重要的是,它在 OBJ 目录上运行清理,在发布​​步骤可以抓取它之前删除目标 EXE 文件。

解决方案 这有点像一个 hacky 解决方法,但它为我解决了这个问题。

修复方法是在发布步骤之前将文件从 /bin/ 文件夹复制回 /obj/ 文件夹。不幸的是,我无法通过 IDE 指定 BeforePublish 事件,因此您必须在文本编辑器中编辑 .vbproj 文件。

在最终标签之前添加以下部分。

<Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target> 
于 2013-07-24T17:04:58.437 回答
1

清洁和重建对我有用。似乎谷歌桌面和一些浏览器扩展经常导致这个错误。寻找安全更新是解决此问题的好方法。

于 2013-11-15T10:35:59.763 回答
1

我最终创建了一个新分支,并且该分支没有这个问题。我从来没有发现真正的原因是什么。

于 2014-05-09T16:29:34.047 回答