部署时无法找到MSBuild目标PipelinePreDeployCopyAllFilesToOneFolder

msa*_*ara 11 msbuild pipeline visual-studio-2010

从VS2010 RTM部署Web应用程序项目会导致MSBuild中出错.它抱怨无法找到PipelinePreDeployCopyAllFilesToOneFolder目标.

有没有办法进一步诊断这个?

谢谢.

bro*_*die 11

我有同样的问题,当我查看我的Web应用程序的.csproj文件时,我有以下几行...

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
Run Code Online (Sandbox Code Playgroud)

我想这是因为我最近从VS2008升级到VS2010.所以它看起来像在转换过程中它被搞砸了.为了解决这个问题,我刚刚用......替换了那些线

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)

之后,一切都按预期工作.

  • 谢谢.我的关键是删除条件. (3认同)

Det*_*ail 6

我已经在网上的几个地方看到了brodie给出的答案,这对我来说很奇怪,因为这个任务(PipelinePreDeployCopyAllFilesToOneFolde r)甚至不包含在这个目标中(Microsoft.WebApplication.targets):

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)

如果你真的去找到这个文件(在x64机器上,它在C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets,或12.0等效版本,如果你'重新使用VS2013)并在文本查看器中打开它,你会发现它不在那里..

它实际上包含在Sayed Ibrahim Hashimi提到的文件中,它是Microsoft.Web.Publishing.targets文件(C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing .targets).

因此,要将其添加到MSBuild/.csproj文件中,请包含以下内容:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
Run Code Online (Sandbox Code Playgroud)