我在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修复了这个问题
以上的方法对我来说都没用。
但我注意到我们的五个ASP。NET MVC项目在我们的主要解决方案中,其中四个将部署包放在正确的位置,而一个将它留在obj\Debug下。
我比较了这些项目,发现了不一致之处。解决办法是改变这一点:
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
:
<Import
Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
Condition="'$(VSToolsPath)' != ''" />
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"
Condition="false" />
在我做了这个更改之后,所有五个项目都将它们的部署包放在了正确的位置。
(很抱歉排了这么长的队,但我找不到更好的方式来浓缩它们。)
以上的方法对我来说都没用。
但我注意到我们的五个ASP。NET MVC项目在我们的主要解决方案中,其中四个将部署包放在正确的位置,而一个将它留在obj\Debug下。
我比较了这些项目,发现了不一致之处。解决办法是改变这一点:
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
:
<Import
Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
Condition="'$(VSToolsPath)' != ''" />
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"
Condition="false" />
在我做了这个更改之后,所有五个项目都将它们的部署包放在了正确的位置。
(很抱歉排了这么长的队,但我找不到更好的方式来浓缩它们。)