MSBuild ExtensionPack копировать все содержимое каталога в другой

StackOverflow https://stackoverflow.com/questions/4821872

  •  26-10-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Чтобы удалить, попробуйте (при условии, что 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)" />

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top