【问题标题】:Continous Build Integration with SourceSafe and Batch Files与 SourceSafe 和批处理文件的持续构建集成
【发布时间】:2010-04-29 04:00:17
【问题描述】:

我想只使用 Windows 批处理文件和 Visual Source Safe 为 .NET 创建一个持续构建集成系统。

到目前为止,我已经提出了以下批处理文件 -

set ssdir=\\xxxx\vss
cd d:\mydir
"C:\Program Files\Microsoft Visual SourceSafe\ss.exe" diff "$/sourcedir" -R -Q > diffout.txt

当进行更改时,这将输出一个包含诸如“SourceSafe 文件不同于本地文件”之类的行的文件。

我的挑战是确定这些行是否在文件中,如果是,则执行获取并启动 MSBuild。然后我会安排批处理文件每 10 分钟左右运行一次。

有人对如何做到这一点有任何想法吗?或者任何其他无需下载复杂的构建自动化系统即可进行持续构建集成的方法?

更新: 也乐于使用 cscript 或 powershell,尽管对这些环境并不十分熟悉。我的主要目的是避免安装第 3 方软件

【问题讨论】:

  • 您是否使用 批处理文件 选项获得了最终解决方案?关于它的完整脚本示例?

标签: .net continuous-integration build-automation visual-sourcesafe batch-file


【解决方案1】:

hudson 运行起来并不是一件很复杂的事情。即使我设法让它在很短的时间内工作。

当您使用它时,替换 sourcesafe...

【讨论】:

  • 同意 SS 应该去。我喜欢 Team Foundation Server,我只是其中的一个。 “如果构建失败则拒绝签入”很好。
【解决方案2】:

cmd.exe 是恐龙。这是一个 PowerShell 版本。

Set-Alias ss 'C:\Program Files\Microsoft Visual SourceSafe\ss.exe'
Set-Alias msbuild 'C:\Windows\Microsoft.Net\Framework64\v3.5\msbuild.exe'

cd d:\mydir

$diffs = ss diff '$/sourcedir' -R -Q

if ($diffs -match 'SourceSafe files different') {
    msbuild blah
}

【讨论】:

  • 如果您不熟悉 PowerShell,我应该指出一件事。将 $ 放入字符串时要小心。我使用了不扩展变量的单引号字符串语法。如果使用双引号,PowerShell 会尝试扩展变量,例如:$s = 'hello'; write-host "$s world!";
  • 我现在已经开始工作了 - 太棒了。我什至可以从中发送电子邮件。非常好!
  • 查看 PowerShell 社区扩展 (codeplex.com/pscx) 以获得大量额外的 PowerShell 功能。
【解决方案3】:

自己编写是一种很好的学习方式,但是我建议像 maven 和巡航控制这样的东西很容易上手。

但是,如果您非常热衷于编写自己的代码,我会编写一个 filewatcher 来监视 VSS Shadow Folders 中的文件,然后启动 MSBUILD。

【讨论】:

  • 关于尝试编写自己的学习工具作为一个很好的学习工具的好点...我在一个地方做过,现在很高兴使用 hudson。
猜你喜欢
  • 2010-09-29
  • 2016-09-20
  • 2013-11-29
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 2011-02-09
  • 1970-01-01
相关资源
最近更新 更多