Aes*_*sir 5 .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"/>
Run Code Online (Sandbox Code Playgroud)
有没有办法防止出现“_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>
Run Code Online (Sandbox Code Playgroud)
您收到该错误是因为 Microsoft.WebApplication.targets 已导入 Microsoft.Web.Publishing.targets。
WPP 如何运作?
Microsoft.WebApplication.targets文件又导入Microsoft.Web.Publishing.targets文件。Microsoft.Web.Publishing.targets文件本质上是WPP。它定义了调用 Web Deploy 来完成各种部署任务的目标,例如Package和MSDeployPublish 。
| 归档时间: |
|
| 查看次数: |
5731 次 |
| 最近记录: |