CruiseControl.Net Build Publisher - 只发布编译文件
Posted
技术标签:
【中文标题】CruiseControl.Net Build Publisher - 只发布编译文件【英文标题】:CruiseControl.Net Build Publisher - Only publish compiled files 【发布时间】:2010-09-06 14:04:06 【问题描述】:在设置 CruiseControl 时,我向发布者任务添加了一个 buildpublisher 块:
<buildpublisher>
<sourceDir>C:\MyBuild\</sourceDir>
<publishDir>C:\MyBuildPublished\</publishDir>
<alwaysPublish>false</alwaysPublish>
</buildpublisher>
这可行,但它会复制构建的整个文件内容,我只想复制 DLL 和 .aspx 页面,不需要发布源代码。
有谁知道过滤这个的方法,还是我需要设置一个任务来运行 RoboCopy 脚本?
【问题讨论】:
【参考方案1】:我设置了一项任务来执行此操作。我不知道有什么方法可以让 CruiseControl 变得那么具体。我通常只是链接一个批处理文件来复制 CC.net 任务。
【讨论】:
【参考方案2】:我不确定 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。
【讨论】:
【参考方案3】:CC.NET 中的默认构建发布者不提供执行此操作的方法。您有几个选择:
创建您自己的具有所需功能的构建发布者 创建自定义 NAnt/MSBuild 任务 使用脚本技术(RoboCopy、批处理文件等)创建脚本文件并为 CC.NET 运行“可执行”任务,或为 NAnt/MSBuild 运行“执行”任务【讨论】:
【参考方案4】:CC.Net Powershell 任务也可以用于此目的。
【讨论】:
以上是关于CruiseControl.Net Build Publisher - 只发布编译文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 CruiseControl.NET 和 MSBuild 发布网站
FXcop 和 Msbuild 与 CruiseControl.NET