使用MSBuild将SVN签出自动化为预构建事件的最佳实践

时间:2013-12-17 23:54:32

标签: visual-studio svn msbuild

我在Visual Studio 2013上有一个C#/ ASP.NET MVC项目

使用MSBuild将SVN结帐自动化为预构建事件的最佳方法是什么?我有两个选择,但我不知道什么是最好的。

第一种方式是在csproj文件中:

<Target Name="BeforeBuild">
    <Exec ContinueOnError="false" Command="svn co --username my_username --password my_password https://my.repository $(MSBuildProjectDirectory)\my\subdirectory" />
</Target>

第二个是右击项目 - &gt;属性 - &gt;构建事件 - &gt;预构建事件命令行:

svn co --username my_username --password my_password https://my.repository $(ProjectDir)\my\subdirectory

1 个答案:

答案 0 :(得分:0)

我偏爱第一个。

prebuild命令将添加到项目属性窗格中相应字段的文本解析为此标记:

  <PropertyGroup>
    <PreBuildEvent>svn co --username my_username --password my_password https://my.repository $(ProjectDir)\Clients\LostGarden</PreBuildEvent>
  </PropertyGroup>

然后将在Microsoft.Common.Targets中处理@(PreBuildEvent)项目组:

  <PropertyGroup>
    <PreBuildEventDependsOn></PreBuildEventDependsOn>
  </PropertyGroup>
  <Target
      Name="PreBuildEvent"
      Condition="'$(PreBuildEvent)'!=''"
      DependsOnTargets="$(PreBuildEventDependsOn)">

    <Exec WorkingDirectory="$(OutDir)" Command="$(PreBuildEvent)" />

  </Target>

接下来的步骤是为您定义BeforeBuild目标的输入和输出,允许它以增量方式构建,以便SVN调用:)