2

我需要在巡航控制中配置我的项目,以便当它从SourceSafe获取源代码时,它也从SourceSafe获取另一个项目的代码。这可能吗?如何配置CruiseControl项目以从sourcesafe获取多个项目

我需要这个,因为我试图配置巡航控制来构建一个解决方案,其中包含来自不同SourceSafe位置的多个项目。我只能指定一个项目从sourcesafe'获取',所以当cruisecontrol构建解决方案时,我得到一个msbuild失败。

干杯

科幻

回答

3

您需要使用CruiseControl的标签。我没有使用SSAFE,但这里

是从Seapine公司的环绕声拉动多个项目我的一个例子:我们正面临着完全相同的问题

<sourcecontrol type="multi"> 
      <sourceControls> 
       <surround> 
        <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable> 
        <serverlogin>user:pw</serverlogin> 
        <branch>WindowsApps</branch> 
        <repository>WindowsApps/Project1</repository> 
        <workingDirectory>d:\AutomatedBuilds\Project1</workingDirectory> 
        <recursive>1</recursive> 
       </surround> 
       <surround> 
        <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable> 
        <serverconnect>10.1.1.42:4900</serverconnect> 
        <serverlogin> >user:pw </serverlogin> 
        <branch>WindowsApps</branch> 
        <repository>WindowsApps/Project2</repository> 
        <workingDirectory>d:\AUtomatedBuilds\Project2</workingDirectory> 
        <recursive>1</recursive> 
       </surround> 
       <surround> 
        <executable>d:\program Files\Seapine\Surround SCM\sscm.exe</executable> 
        <serverconnect>10.1.1.42:4900</serverconnect> 
        <serverlogin> >user:pw </serverlogin> 
        <branch>WindowsApps</branch> 
        <repository>WindowsApps/Project3</repository> 
        <workingDirectory>d:\AutomatedBuilds\Project3</workingDirectory> 
        <recursive>1</recursive> 
       </surround> 
+0

这可行,但Visual Studio解决方案在位置“../../../Project-B/”中查找Project-B。由于相对路径的原因,该项目最终会位于我所需的CruiseControl构建目录之外的位置。任何方式在这个? – SciFi 2010-01-15 14:45:47

+0

“WorkingDirectory”块指定您的CC Build目录。 除非有某些原因,WorkingDirectory无法在SSafe中工作(CCNet) – taylonr 2010-01-15 15:02:25

+0

其实这不是我的意思。无论我告诉CruiseControl将项目放在哪里,msbuild都会指望它位于错误的位置,因为它是在.sln文件中指定的。我想这不是一个真正的巡航控制问题,但我想知道处理这个问题的最佳方法。也许我的自动构建文件夹结构应该完全反映我的sourcesafe结构? – SciFi 2010-01-15 15:09:54

0

作为taylonr pointed out可以从源代码管理监视多个子树。但是您需要将源控制中的存储库位置信息放入CCNET配置中。

您可能会解析解决方案文件,提取文件路径并生成配置文件。但即使如此,您仍然会遇到新的问题:

  1. 如果解决方案文件包含相对路径,则需要将它们转换为绝对路径。
  2. 解决方案文件中的路径信息引用本地目录和文件。您需要将其映射回源代码管理中的存储库结构。

由于这个原因,我们决定放弃解决方案支持。每个CCNET项目都涉及一个VS项目。 VS项目中的每个文件都需要放在项目的目录/存储库子树内。 CCNET可以很容易地监控这棵树。