项目中不存在目标“_WPPCopyWebApplication”

时间:2011-08-16 09:33:17

标签: .net msbuild msbuild-task msbuild-4.0

我正在创建一个构建脚本,以自动将我们的Web项目发布到测试机器。

我有一个成功执行此操作的msbuild脚本,但是当它运行时会为解决方案中的每个项目生成一个错误,指出“目标”_WPPCopyWebApplication“在项目中不存在”。

这是正确的,因为在我的每个项目文件中,我都不会导入包含此函数的相关.targets文件。

如果我确实更改了每个项目文件以导入.targets文件,而不是错误,我会收到每个项目的警告,说明

MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets“无法再次导入。

它已在“MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets(354,3)”中导入。这很可能是构建创作错误。此后续导入将被忽略。

目前,我在构建脚本的顶部导入了相关的.targets文件:

<Project ToolsVersion="4.0"
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project ="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/>
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets"/>

有没有办法防止错误说明项目文件中没有“_WPPCopyWebApplication”而没有生成警告,说明在我将其添加到每个项目文件后有重复的导入?

为什么项目需要导入目标文件(如果它是在我的构建脚本顶部导入的?

编辑:

我目前正在使用_WPPCopyWebApplication:

<Target Name="Publish" >
<RemoveDir Directories="$(OutputFolder)" ContinueOnError="true" />
<MSBuild Projects="myproject.csproj;anotherproject.csproj" Targets="ResolveReferences;_WPPCopyWebApplication" Properties="WebProjectOutputDir=$(OutputFolder);OutDir=$(WebProjectOutputDir)\" />
</Target>

我从herehere得到的:

1 个答案:

答案 0 :(得分:3)

您收到该错误,因为Microsoft.WebApplication.targets已导入Microsoft.Web.Publishing.targets。

http://www.asp.net/web-forms/tutorials/deployment/web-deployment-in-the-enterprise/building-and-packaging-web-application-projects

  

WPP如何运作?

     

Microsoft.WebApplication.targets 文件依次导入 Microsoft.Web.Publishing.targets 文件。 Microsoft.Web.Publishing.targets 文件基本上 WPP。它定义了目标,例如 Package MSDeployPublish ,它们调用Web Deploy来完成各种部署任务。