MSBuild extensionpack Скопируйте все содержимое каталога в другой - PullRequest
0 голосов
/ 28 января 2011

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

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

1 Ответ

1 голос
/ 28 января 2011

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

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

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

...