MSBuild多个输出路径

时间:2013-07-01 19:33:13

标签: msbuild targets msbuild-propertygroup

我看到了this S.O问题并且有类似的要求。这就是我在.targets文件中的内容 -

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup Condition="$(TeamBuildOutDir) != '' ">
        <OutputPath>$(TeamBuildOutDir)\Assemblies</OutputPath>                 
    </PropertyGroup>

如何输出到多个文件夹? eg- $(TeamBuildOutDir)\ Assemblies2

TIA

谢谢Nick,复制/粘贴将其搞砸了。这就是我试过的 -

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="$(TeamBuildOutDir) != '' ">
 <OutputPath>$(TeamBuildOutDir)\Assemblies</OutputPath>                   
</PropertyGroup>
<Target Name="AfterBuild">
 <Copy SourceFiles="$(OutputPath)\**\*.*" DestinationFolder="$(TeamBuildOutDir)\Assemblies2" />
</Target>
</Project>

我也试过了 -

 <Copy SourceFiles="$(OutputPath)\***\*.*" DestinationFolder="$(TeamBuildOutDir)\Assemblies2" />

和 -

 <Copy SourceFiles="$(OutputPath)\***\*.*" DestinationFolder="$(TeamBuildOutDir)\" />

如果目录不存在导致问题,但仍然没有运气。

7/28更新。试过这个但是仍然不能正常工作(没有错误,但输出目录中没有文件。它们出现在Assemblies文件夹中,所以我知道目标文件正在被触发。) -

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="$(TeamBuildOutDir) != '' ">
 <OutputPath>$(TeamBuildOutDir)\Assemblies</OutputPath>                   
</PropertyGroup>
<Target Name="AfterBuild">
 <CreateItem Include="$(OutputPath)\**\*.*">
     <Output ItemName="Outfiles" TaskParameter="Include" />
 </CreateItem>
 <Copy SourceFiles="@(Outfiles)" DestinationFiles="@(Outfiles->'$(TeamBuildOutDir)\%(relativedir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>
</Project>

1 个答案:

答案 0 :(得分:0)

使用复制任务创建一个AfterBuild目标,$(OutputPath)的内容为$(TeamBuildOutDir)\ Assemblies2。

<Target Name="AfterBuild">
 <Copy SourceFiles="$(OutputPath)\**\*.*" DestinationFolder="$(TeamBuildOutDir)\Assemblies2" />
</Target>

编辑,更新此项以包含测试消息,并包含“DependsOnTarget”属性,以查看我们是否可以在构建过程之后进行此操作...

<Target Name="AfterBuild" DependsOnTarget="Build">
 <Message Text="**** TEST **** " Importance="high" />
 <Copy SourceFiles="$(OutputPath)\**\*.*" DestinationFolder="$(TeamBuildOutDir)\Assemblies2" />
</Target>