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>