问题描述
生成控制器和生成代理已经建好,目标是这样的:通过不同的生成定义在点击入队的时候自动将生成的站点复制到对应开发环境和测试环境。现在的方法是修改Microsoft.WebApplication.targets,将Microsoft.WebApplication.targets复制到项目下面的一个Targets文件夹,然后在_CopyWebApplicationLegacy的节点中添加复制的节点,如下:<PropertyGroup><WebProjOutputDir>$(OutDir)_PublishedWebsites$(MSBuildProjectName)</WebProjOutputDir><TestOutputDir>\VmforwebmsbuildtesttestMsBuildTest</TestOutputDir></PropertyGroup><TargetName="_CopyWebApplicationLegacy"Condition="!$(Disable_CopyWebApplication)And'$(OutDir)'!='$(OutputPath)'"><!--复制测试--><MessageText="TESTTEST=@(WebProjOutputDir),TESTTESTTEST=@(TestOutputDir)"/><DeleteCondition="Exists($(TestOutputDir))"Files="$(TestOutputDir)"/><CopyCondition="'%(Content.Link)'==''"SourceFiles="%(Content.Identity)"DestinationFolder="$(WebProjectOutputDir)%(Content.RelativeDir)"/><CopyCondition="'WebProjOutputDir'!=''ANDExists('WebProjOutputDir')"SourceFiles="WebProjOutputDir"DestinationFolder="TestOutputDir"/><!--Logtasks--><MessageText="CopyingWebApplicationProjectFilesfor$(MSBuildProjectName)"/>
可是在生成定义进队后查看其log,_CopyWebApplicationLegacy已经跑了,但只能看到CopyingWebApplicationProjectFilesfor这一个输出,而TESTTEST的输出完全没有,\VmforwebmsbuildtesttestMsBuildTest里也没有任何文件就如同完全没跑那样,请问该怎么设置呢?附站点csproj的修改<ImportProject="$(MSBuildBinPath)Microsoft.CSharp.targets"/><!--<ImportProject="$(VSToolsPath)WebApplicationsMicrosoft.WebApplication.targets"Condition="'$(VSToolsPath)'!=''"/>--><!--<ImportProject="$(MSBuildExtensionsPath32)MicrosoftVisualStudiov10.0WebApplicationsMicrosoft.WebApplication.targets"Condition="false"/>--><ImportProject="TargetsMicrosoft.WebApplication.targets"/>
被注释的节点是原来的,下面那个TargetsMicrosoft.WebApplication.targets就是站点项目里新建的Targts文件夹和复制出来的Microsoft.WebApplication.targets