Ежедневные сборки с MsBuild - PullRequest
       0

Ежедневные сборки с MsBuild

1 голос
/ 03 августа 2011

Что я хочу сделать, это скопировать все файлы и подпапки из OutputPath в ежедневную папку.Например, у меня есть проект под названием Clock, у меня есть скрипт msbuild для него:

<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectPath>C:\Clock</ProjectSolutionName>
    <ProjectSolutionName>Clock</ProjectSolutionName>
  </PropertyGroup>

  <Target Name="ReleaseBuild">
    <Message Text="Building $(ProjectSolutionName) Release Build" />
    <MSBuild Projects="$(ProjectPath)\$(ProjectSolutionName).sln" Targets="Clean" Properties="Configuration=Release" />
    <MSBuild Projects="$(ProjectPath)\$(ProjectSolutionName).sln" Targets="Build" Properties="Configuration=Release" />
    <Message Text="$(ProjectSolutionName) Release Build Complete!" />
  </Target>
</Project>

Теперь, когда я запускаю скрипт, он компилирует решение, и файлы будут сохраняться в папке Release.Как я могу скопировать все файлы и подпапки из папки Release в папку с именем даты, как на сегодняшний день, например: C:\Clock_Builds\20110803

1 Ответ

2 голосов
/ 04 августа 2011

Это должно сделать большую часть того, что вы просите (его msbuild 4):

<Project DefaultTargets="DateCopy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Target Name="DateCopy">
   <ItemGroup>
      <Release Include="d:\Build\**\**"/>
   </ItemGroup>

   <PropertyGroup>
      <StringDate>$([System.DateTime]::Now.ToString('yyyyMMdd'))</StringDate>
   </PropertyGroup>

   <MakeDir Directories="D:\Release\$(StringDate)"/>

   <Message Text="$(StringDate)" Importance="High"/>
   <Copy SourceFiles="@(Release)"
         DestinationFolder="D:\Release\$(StringDate)\%(RecursiveDir)"/>
</Target>
</Project>

Надеюсь, что поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...