条件语句与" AfterCompileSolution"一起使用在tfsbuild

时间:2012-10-10 02:21:01

标签: msbuild tfsbuild

我需要你的帮助。我遇到了一个情况。我试图将某些二进制文件复制到特定的文件夹中。我将这些任务添加到“AfterCompileSolution”中。我知道这是不正确的,bcos会在每个解决方案编译完成后执行此步骤。

这是我的情况,我尝试添加像SolutionFileName这样的条件,但我得到空结果。目标未执行,因为SolutionFileName参数为空。

所以你知道我可以在solutiontobuild之间使用的任何参数,即我想在解决方案“A”完成之后复制某些二进制文件并且我希望这些参数是“AfterCompileSolution”或“BeforeCompileSolution”的一部分

请建议

由于 Satesh

1 个答案:

答案 0 :(得分:0)

我已经有一段时间了,但是我相信你用以下语法引用文件名:

<Target Name="AfterCompileSolution" DependsOnTargets="RandomPreReqTarget">       
    <SomeTask Condition="'%(SolutionToBuildItem.Identity)' == 'ConditionValue'" />
</Target>

您可以做的另一件很酷的事情是您的SolutionToBuild项目中的产品额外属性,并将它们作为元数据引用,如:

<SolutionToBuild Include="$(SolutionRoot)\$(SourceBranch)\RandomDirectory\Project.csproj">
  <Targets>Build</Targets>
  <Properties>OutDir=$(RandomDirectory);Configuration=$(Configuration);Platform=AnyCPU</Properties>
  <GAC>True</GAC>
</SolutionToBuild>

然后您就可以像这样访问元数据:

<Target Name="AfterCompileSolution" DependsOnTargets="RandomPreReqTarget">       
    <SomeTask Condition="'%(SolutionToBuildItem.GAC)' == 'True'" />
</Target>