我在VS 2012中有一个Web应用程序项目,当我使用Web发布工具时,它成功地构建了,但没有将任何文件复制到发布目标(在这种情况下是文件系统)。

如果我看构建输出,我可以看到一切都被复制到obj\Release\Package\PackageTmp\正确,但然后我在构建输出中看到的是这样的:

4>完成建设项目“{project}.csproj”。 4>删除现有文件… 4>发布文件夹/… 4 > ========== 构建:3成功了,0失败,1最新的,0跳过 ========== ========== 发布:1成功,失败,0跳过 ==========

即使它说发布成功,但目标目录中没有用于发布的文件。

我在多个项目中看到过这种情况,有时似乎是解决方案/平台配置导致了这个问题,但我还不能确定造成这个问题的确切原因。

有人见过这种情况吗?或者有人知道如何让它正确工作吗?

更新:

我可能找到了一个变通办法。这又发生了,我把发布设置弄乱了。一旦我改变了设置选项卡上选择的配置到另一个配置,然后回到我想要使用的所有文件再次开始发布。希望这在未来的其他项目中也适用。

更新2:

我在Microsoft Connect上发布了一个bug,并从VS Web developer团队的开发人员那里得到了回复。他说他们已经在内部版本中修复了这个问题,并将很快发布发布工具的更新来修复这个问题。

更新3:

最近Visual Studio 2012 Update 2修复了这个问题


当前回答

最近在VS 2013的一个MVC项目中,我导入了Umbraco CMS,遇到了同样的问题。我不能出版。上面的答案很有帮助,尽管我需要一段时间来弄清楚我在vs中应该做什么。这需要一些研究,比如在MS博客上找到答案。我试着简单地说:

Choose in the VS toolbar a certain configuration e.g. Release and Any CPU. Run the project. Afterwards right-click in the Solution Explorer on the solution in question, choose Publish. Create a new publishing profile or use a given one, but always make sure that in the settings the same configuration (e.g. Release and Any CPU) is chosen, as before you run the project the last time. Additionally in my case it was necessary to delete the OBJ folder because here the settings from my last unsuccessful tries to publish got stuck, though I restarted VS and deleting all publishing profiles.

其他回答

同样的问题与VS 2012 Pro的磁盘发布目标。项目用来正确发布,但开始做这个问题,它无法将文件复制到目标文件夹。

解决方案是编辑发布配置文件,将模式从发布(任何CPU)更改为调试,然后返回发布(任何CPU)。这样做会导致PublishProfiles\projname.pubxml。要重写的用户文件(如上所述)。看起来它在propertygroup节点下添加了LastUsedBuild,LastUsedPlatform和TimeStampOfAssociatedLegacyPublishXmlFile元素。发布完成后,它将添加另一个ItemGroup,其中包含单独的文件和发布时间。

我曾多次发布过这个网站。但有一天,当我修改了一些aspx文件,然后试图发布网站,结果是一个空的发布文件夹。

在我的变通中,我找到了一个解决方案。

发布向导将在发布时反映任何错误,但不会将任何文件复制到目标文件夹。 要找出产生错误的文件,只需将网站文件夹内容复制到一个新文件夹中,并用该网站启动visual studio。 现在,当你尝试发布时,它会给你一个包含错误的文件名。 只需纠正原始网站文件夹中的错误,并尝试发布,它将像之前一样工作。

遵循以下步骤来解决:

Build > Publish > Profile > New

创建一个新的概要文件,并使用与现有概要文件相同的设置对其进行配置。

项目现在将正确发布。这通常是由另一台机器在更新版本的Visual Studio中创建的受源代码控制的发布配置文件造成的。

这里我们遇到了同样的问题。

我们只需将“Publish method:”从“File System”更改为“Web Deploy”,然后立即将其更改为“File System”。

修正-提供的各种解决方案都不适合我。在VS Community 2017, Windows Server 2012 R2中对我有用的是为用户更改TEMP和TMP环境变量,然后重新启动系统并再次部署(重新启动VS是不够的)。这些临时变量是VS发布临时变量的地方。

在改变临时变量后重新启动visual studio没有做到这一点,必须重新启动系统。