【问题标题】:Visual Studio 'Publish' command failsVisual Studio“发布”命令失败
【发布时间】:2010-10-22 16:42:36
【问题描述】:

我正在开发一个中等规模的 WebForms 项目。由于这里管理的特殊性,我必须将站点上传到远程服务器才能进行测试(没有本地主机测试)。我在 Visual Studio 2008 中使用“发布”命令。有时,它甚至可以工作。大多数时候,我莫名其妙地在左下角得到一个“发布失败”,没有更多细节。

我阅读的几篇 google 文章/论坛帖子建议使发布操作的目标本地文件夹对每个人都可读/可写。没用。

有没有办法获得关于为什么在 VS2008 中发布失败的更多详细信息,如果没有,是否有更好的方法来进行这些部署?与实际调试相比,我花在构建/推送到 Web 服务器上的时间更多。

【问题讨论】:

  • 这很愚蠢,所以我认为它不值得作为答案发布,但有时如果我打开文件夹并单击文件,发布会失败,因为它无法删除我突出显示的文件。

标签: c# asp.net visual-studio visual-studio-2008 publishing


【解决方案1】:

值得检查输出窗口。我刚刚发布失败,因为我删除了 VS 之外的图像,所以 VS 抱怨找不到图像,但此信息仅显示在输出窗口中。

查看此链接了解更多信息: http://ericfickes.com/2009/08/find-out-why-visual-studios-publish-fails/

【讨论】:

  • 太好了,我在这里找到了答案!
【解决方案2】:

当标记 (!) 出现错误时,我们会遇到这种情况。不好的是 VS 只会吞下错误,然后告诉你失败。

我的建议是使用 MSBuild 从命令行运行您的发布。它不是那么简单,但它确实有效(一旦你开始使用它)。

【讨论】:

    【解决方案3】:

    我后来发现这些特定发布失败的原因是由于选中了“删除现有文件”选项。在 Windows Vista 上以非管理员帐户使用 Visual Studio 2008 可能会在尝试删除现有文件时导致权限错误。遇到 Visual Studio 没有足够权限删除的文件后,发布将静默失败。在 Vidual Studio 之外手动删除文件后,发布功能正常。

    我在 Windows 7 上没有遇到过这个问题;我假设 Windows 7 中的 UAC 更改解决了这个问题。

    【讨论】:

      【解决方案4】:

      我主要使用 Web 表单,每天都会遇到这个问题。 在我看来,当它无法删除它试图替换的文件时,发布失败。即使我没有打开任何文件,有时它仍然会失败。不知道为什么。 不仅 VS 发布经常失败,而且速度也非常缓慢。 我只是发布到空的本地目录并使用单独的 FTP 客户端上传文件。这是更多的工作,但有效。

      【讨论】:

        【解决方案5】:

        您可能不是这种情况,但我在发布网站时看到过这种情况。如果app_offline.htm 文件未从您的项目中排除(如果您使用此文件),则发布将失败。

        【讨论】:

          【解决方案6】:

          同样的事情发生在我身上。我所做的是包含项目中未包含的图像文件并删除未使用的图像。

          【讨论】:

            【解决方案7】:

            在解决类似问题大约 30 分钟后,不知道是什么原因导致它关闭 VS 并重新打开我的项目。开始工作正常。不知道为什么,但它奏效了。

            【讨论】:

              【解决方案8】:

              您应该始终停止在您要发布到的机器上运行的 IIS 实例。谷歌“iisreset”这个词。 DiscountAsp 和 Arvixe 等其他托管服务提供商为您提供了远程“停止”和“启动”其 IIS 上的应用程序池的工具。这是非常必要的,因为 IIS 可能已将某些文件锁定为“in use”,因此当它尝试覆盖它们时,您的发布会失败。发布完成后,只需重新启动 IIS(如果您使用的是第 3 方托管服务提供商,则从 Web 工具中按“开始”)。

              当所有其他方法都失败时,检查您的“输出”窗口(Visual Studio 底部“错误列表”右侧的选项卡)。在发布失败后滚动浏览所有内容并查找任何显示“无法添加”的内容。如果您在同一次发布中仍然看到相同的“无法添加”错误,请 ftp 进入该文件夹,手动删除有问题的文件,然后再次尝试发布。

              【讨论】:

                【解决方案9】:

                当我的 ProjectName.Publish.xml 文件是只读文件时,我得到了这个。一旦我从源代码控制中检查了文件,我就不再收到错误并且可以发布了。

                【讨论】:

                  【解决方案10】:

                  只是添加到这个线程中,我发现由于某种奇怪的原因,只有 Mercurial 文件被发布到服务器,其他所有文件都没有被复制。

                  另外一件奇怪的事是只有Debug配置可用; Release 无处可见。

                  在阅读了关于 S.O. 的其他帖子后,我发现 VS 2010 和 2012 有很多,但没有太多可以涵盖 2008 的相同问题。

                  我发现解决方法是删除 [solution].suo 文件,然后尝试发布。这似乎完成了这项工作,尽管需要很长时间才能完成。

                  【讨论】:

                    【解决方案11】:

                    我发现并在我的情况下工作。它是使用不同版本的VS。

                    我最近遇到了这个问题,该解决方案在 VS2015 构建、编译和测试中完美运行。

                    但是,当我尝试发布时,静默失败。 因此,我关闭了解决方案并使用 VS2017 打开它,它对项目/解决方案使用相同的文件结构。然后重建它并发布没有任何问题。

                    我相信它可能与 VS 相关并且调试起来很复杂。

                    如果您在本地计算机上使用多个 Vs 实例,这是一种解决方法。

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2014-02-02
                      • 2023-03-08
                      相关资源
                      最近更新 更多