9

在设置 CruiseControl 时,我向发布者任务添加了一个 buildpublisher 块:

<buildpublisher>
  <sourceDir>C:\MyBuild\</sourceDir>
  <publishDir>C:\MyBuildPublished\</publishDir>
  <alwaysPublish>false</alwaysPublish>
</buildpublisher> 

这可行,但它复制了构建的整个文件内容,我只想复制 DLL 和 .aspx 页面,不需要发布源代码。

有谁知道过滤这个的方法,还是我需要设置一个任务来运行 RoboCopy 脚本?

4

4 回答 4

3

我设置了一个任务来做到这一点。我不知道有什么方法可以让 CruiseControl 变得那么具体。我通常只是链接一个批处理文件来复制到 CC.net 任务。

于 2008-08-22T18:05:24.583 回答
1

我不确定 Web 项目,但对于我们的 winforms 应用程序,您可以从 MSBuild 任务中获取 TargetOutputs,如下所示:

<MSBuild Projects="@(VSProjects)"
  Properties="Configuration=$(Configuration)">
  <Output TaskParameter="TargetOutputs" ItemName="BuildTargetOutputs"/>
</MSBuild>

然后做一个副本:

<Copy SourceFiles="@(BuildTargetOutputs)" 
  DestinationFolder="bin"
  SkipUnchangedFiles="true" />

不确定 Web 项目的 TargetOutputs 是什么,但对于 winforms 和类库,它是 .dll 或 .exe。

于 2008-08-28T16:10:16.617 回答
0

CC.NET 中的默认构建发布者不提供执行此操作的方法。你有几个选择:

  • 创建您自己的具有所需功能的构建发布者
  • 创建自定义 NAnt/MSBuild 任务
  • 使用脚本技术(RoboCopy、批处理文件等)创建脚本文件并为 CC.NET 运行“可执行”任务,或为 NAnt/MSBuild 运行“执行”任务
于 2008-08-28T16:05:16.037 回答
0

CC.Net Powershell 任务也可用于此目的。

于 2011-08-11T15:49:41.330 回答