2009-04-29 114 views
6

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

我读过的几个Google文章/论坛帖子建议让发布操作的目标本地文件夹对每个人都是可读/可写的。没有帮助。

有没有办法获得关于VS2008发布失败的更多细节,如果没有,是否有更好的方法来完成这些部署?我花费更多的时间来构建/推送到Web服务器,而不是实际调试。

+0

这是愚蠢的,所以我不认为它担保被张贴为答案,但有时如果我打开文件夹和文件点击,发布失败,因为它不能删除我突出显示的文件。 – 2009-04-29 21:02:33

回答

3

它发生在标记(!)出现错误时。糟糕的是,VS会吞下错误,并告诉你失败。

我的建议是使用MSBuild从命令行运行发布。这不是那么简单,但它有效(一旦你进入它)。

1

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

1

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

0

在与类似的问题挣扎了大约30分钟,但没有线索导致它关闭了VS并重新开启了我的项目。开始工作正常。不知道为什么,但它的工作。

2

我已经发现这些特定的发布失败的原因是由于“删除现有文件”选项被检查。在Windows Vista上使用非管理帐户下的Visual Studio 2008可能会在尝试删除现有文件时导致权限错误。在遇到Visual Studio没有足够的删除权限的文件后,发布将无提示失败。一旦在Vidual Studio之外手动删除文件,发布功能就会正常运行。

我没有与Windows 7的这个问题;我假设Windows 7中的UAC更改解决了这个问题。

1

同样发生在我身上..我做了什么是包括图像文件,没有包括在项目中,并删除图像没有使用。

4

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

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

+0

太棒了,我在这里找到了我的答案! – 2012-02-06 21:37:31

0

你应该总是停止您要发布到计算机上运行的IIS实例。 Google单词“iisreset”。像DiscountAsp和Arvixe等其他托管服务提供商为您提供了在他们的IIS上远程“停止”和“启动”您的应用程序池的工具。这是非常必要的,因为IIS可能已将某些文件锁定为“正在使用”,所以当它尝试写入它们时,发布失败。当您的发布完成后,只需重新启动IIS(或者如果您使用的是第三方托管提供商,请从Web工具中按“开始”)。

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

0

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

0

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

另一个奇怪的是,只有调试配置可用; 版本无处可见。

围绕阅读其他线程SO后,我发现有很多的VS 2010和2012年,但没有太大的覆盖,与2008年

的修复同样的问题,我发现,被删除的[解决方案]suo文件,然后尝试发布。这似乎做了这项工作,虽然它花了很长时间才完成。

相关问题