【发布时间】:2010-10-06 12:39:04
【问题描述】:
很长一段时间以来,我一直试图弄清楚如何在我们的商店设置自动构建过程。我已经阅读了很多关于这个问题的帖子和指南,但没有一个真正符合我的具体需求。
我的SVN仓库布局如下
\projects
\projectA (a product)
\tags
\1.0.0.1
\1.0.0.2
...
\trunk
\src
\proj1 (a VS C# project)
\proj2
\documentation
然后我有一个网络共享,每个项目(产品)都有一个文件夹,其中包含二进制文件、书面文档和生成的 API 文档(通过 NDoc - 每个项目可能在存储库中有一个 .ndoc 文件)对于每个历史版本(来自 tags SVN 文件夹)和最新版本(来自 trunk )。
基本上,我想在计划的批量构建中执行以下步骤:
- 检查项目的 SVN 文件夹并确定 标记的网络共享中不存在
- 对于这些标签中的每一个
- 查看标签文件夹
- 构建(带有发布配置)
- 将生成的二进制文件复制到网络共享
- 搜索 .ndoc 文件
- 通过 NDoc 生成 CHM 文件
- 将生成的 CHM 文件复制到网络共享
- 执行与 2. 中相同的操作,但对于 trunk 的 HEAD 修订版
现在,问题是,我不知道从哪里开始。我不在存储库中保留 .sln 文件,但我可以用 MSBuild 文件替换这些文件,这些文件反过来构建属于特定产品的 C# 项目。
我想最麻烦的部分是检查存储库中尚未处理的标签 - 即搜索标签并将它们与网络共享上的项目目录结构进行比较。我不知道如何在任何构建工具(NAnt、MSBuild)中做到这一点。
您能否就如何整体和详细地处理这项任务向我提供一些指导?我不在乎我是使用 NAnt、MSBuild 还是两者兼而有之。我知道这可能相当复杂,但每个想法和 NAnt/MSBuild sn-p 都会有很大帮助。
提前致谢。
【问题讨论】:
标签: .net svn msbuild build-automation nant