MSBuild множественный выходной путь

Я видел этот ТАК вопрос и имею подобное требование. Это то, что у меня есть в файле.targets -

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

Как вывести на несколько папок? eg- $(TeamBuildOutDir)\Assemblies2

ТИА

Спасибо Ник, Копия / вставка испортила это. Это то, что я пытался -

<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 ответ

Вы создаете цель 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>
Другие вопросы по тегам