我正在创建一个构建脚本,以自动将我们的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文件。
我有一个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>