MSBuild ExtensionPack копировать все содержимое каталога в другой
-
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)" />
Я не сделал этого через несколько месяцев, поэтому простите, если какой -либо из этих примеров требует немного настройки.