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

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

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

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

===============>>#1 票数:3 已采纳

我设置了一个任务来执行此操作。 我不知道有什么方法可以使CruiseControl具体化。 我通常只链接一个批处理文件来复制到CC.net任务。

===============>>#2 票数:1

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

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

然后复制一份:

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

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

===============>>#3 票数:0

CC.NET中的默认构建发布者不提供这样做的方法。 你有几个选择:

  • 使用所需的功能创建自己的构建发布者
  • 创建自定义NAnt / MSBuild任务
  • 使用脚本技术(RoboCopy,批处理文件等)创建脚本文件并为CC.NET运行“可执行”任务,或者为NAnt / MSBuild运行“exec”任务

===============>>#4 票数:0

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

  ask by FlySwat translate from so

未解决问题?本站智能推荐: