Пакет расширений MSBuild Скопируйте все содержимое каталога в другой

Я использую пакет расширения MSBuild. Я хотел бы скопировать все содержимое каталога сборки в другой каталог в файловой системе. Я не хочу переименовывать каталог назначения, просто замените содержимое. Возможно, я не знаком с пакетом расширений msbuild, но кажется, что это должно быть легко, и я не смог найти доступную документацию в Интернете.

Я пытаюсь настроить службу, которая автоматически развертывается в среде непрерывной интеграции после успешной сборки.


person aceinthehole    schedule 27.01.2011    source источник


Ответы (1)


Насколько я помню, вам нужно очищать и копировать отдельными шагами. Поэтому сначала удалите/очистите, а затем скопируйте. Я не смог (в последний раз) найти способ «перезаписать». Это на самом деле работало лучше для нас, потому что одна сборка может удалить файлы, которые содержались в предыдущей, поэтому мы не хотели бы, чтобы они «задержались».

Чтобы удалить, попробуйте (при условии, что DeploymentDesintationPath является свойством с путем):

<MSBuild.ExtensionPack.FileSystem.Folder
     TaskAction="RemoveContent" 
     path="$(DeploymentDestinationPath)" />

А затем скопируйте (обратите внимание, что вам нужно заполнить группу элементов как для источника, так и для места назначения)

<ItemGroup>    
      <DeploymentSourceFiles
           Include="$(BuildFolder)\**\*"
      />  
      <DeploymentDestinationFiles
           Include="@(DeploymentSourceFiles->
           '$(DeploymentDestinationPath)\%(RecursiveDir)%(Filename)%(Extension)')"
      />  
</ItemGroup>

<Copy SourceFiles="@(DeploymentSourceFiles)"
     DestinationFiles="@(DeploymentDestinationFiles)" />

Я не делал этого несколько месяцев, так что извините, если какой-либо из этих примеров требует небольшой настройки.

person Taylor Bird    schedule 27.01.2011
comment
Прощения не требовалось, все работало отлично. Это был синтаксис для включения свойства DeploymentDestinationFiles, которое через меня для цикла. Спасибо! - person aceinthehole; 29.01.2011