可能重复:
生成前任务-删除CruiseControl.NET中的工作副本

我想在cruisecontrol构建过程中删除我的工作目录...我确定这很容易,但是我一直找不到它的示例...

如果您知道如何创建目录,那也将很有用。

谢谢。

===============>>#1 票数:4

两种方式之一。

  1. 如果您已经在使用MSBuild文件或类似的文件,请将操作添加到MSBuild文件中。
  2. 与其直接执行某些命令,不如创建一个执行该命令的批处理文件,然后删除该目录,然后让CCnet调用该批处理文件。

===============>>#2 票数:0

我的猜测是,您想 CruiseControl.NET从源代码管理获取最新代码之前删除工作目录。 如果是这种情况,那么完成此任务的唯一方法是为CruiseControl.NET编写一个自定义源代码控制提供程序,该程序首先删除工作目录,然后获取最新代码。 查看CruiseControl.NET的源代码,以获取有关如何编写源代码控制提供程序的示例。

如果要在从源代码管理检索到最新代码之后删除工作目录,则可以通过运行“ cmd / c del directoryname”来使用CruiseControl.NET的可执行任务

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

对我来说,在ASP.NET工作中,最简单的方法(这使我可以根据项目打MSBUild或NAnt)是滚动我自己的exe,该exe带有一个参数,该参数通过发射的bat文件传入由CC.NET。 这不是世界上最安全的事情,但是如果您完全控制自动化的构建机器,那么这是最安全的选择。 不太破旧。 快速且可重复使用。

将exe放在执行递归删除的位置:

static void Main(string[] args)

 { for (int n = 0; n < args.Length; n++) { if (Directory.Exists(args[n].ToString())) { Directory.Delete(args[n].ToString(), true); } } } 



将其放到多个文件可以传递参数的地方,并为每个项目编写一个自定义.bat文件。 所以我的任务块看起来像这样:

<tasks>
    <msbuild>
        <executable>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe</executable>
        <workingDirectory>Z:\WorkingDirectory</workingDirectory>
        <projectFile>YourSolution.sln</projectFile>
        <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll</logger>
    </msbuild>
    <exec>
        <executable>Z:\SomePathToBuildScripts\YourCustomBat.bat</executable>
    </exec>
</tasks>



然后最后一步是设置该.bat文件以在使用后执行删除/重建功能。 如果您希望将站点发布回该目录,请确保在bat文件中重建(“ MD”)删除的目录。 在开发人员的盒子上,我发现这是防止心爱的Frankenbuild的最佳方法。

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

我过去这样做的方法是自己没有CC.Net结帐源。 相反,该项目有两个<msbuild>元素,第一个调用运行svn-clean.pl (编译为.exe)的构建目标,然后使用svn.exe更新源。 第二个<msbuild>元素启动主构建过程。

您可以使用delete命令轻松替换svn-clean。 对于我的项目,从签出中删除谷壳总是比签出新的工作副本要快。

这两个msbuild元素是必需的,因为主项目生成文件经常被更新。 这很重要,因为只有在开始新的msbuild进程后,才会重新加载对构建文件的更新。

当我(很少)移动或更改该清理并更新构建目标的依赖项时,这种设置会崩溃,以至于msbuild进程需要重新加载有效指令才能运行清理并更新目标。 发生这种情况时,我会在提交之前停止CC.Net,进入CC.Net服务器,然后手动进行“ svn更新”。

提示:到目前为止,CC.Net很可能具有自然的生成前清理操作。 从那以后,我就移到了TeamCity,它可以配置为在每次构建时或仅在开发人员选择时执行此操作(例如,当您知道所做的更改不会干净地更新时-生成产品目录的SVN移动)心神)。

  ask by mmattax translate from so

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

3回复

Cruisecontrol和cc.net走了吗?

只是在移动部分构建服务器的过程中,发现thinkworks.com上的所有文档都已消失。 有人知道这是永久的还是暂时的?
1回复

在CC.NET 1.5中配置安全设置

下面是我拥有的ccnet.config文件,在其中使用了CC.NET 1.5的新安全功能。 谁能让我知道我在做什么错。 我在DOMAIN中有两个小组,我想让一个小组只能查看,而另一个小组则可以完全访问。
2回复

有没有办法记录谁在CC.Net中创建了强制构建?

当有人在CC.Net仪表板上创建强制构建时,是否可以记录创建该构建的人(人员/部门的名称)或为此创建的字段条目? 任何指针,请不胜感激。
1回复

配置CC.NET电子邮件通知并在仪表板中显示错误日志

我正在尝试配置CC.NET以发送电子邮件通知。 我已经搜索了很多关于它的信息并找到了例子但是通过使用这些例子我无法弄清楚实际问题发生在哪里。 下面是我在配置文件中使用它的代码块: 上面的配置是在CC.NET配置验证器中传递的。 如何从头开始配置? 如果构建失败,我还想在仪表板
1回复

通过cc.net运行时,Webdriver测试失败并显示ElementNotVisibleException

我有一个简单的测试,即打开页面,单击一个按钮,然后在出现的灯箱中单击下一个按钮(我正在按ID查找元素)。 我可以在Visual Studio中运行此测试,并且该测试可以成功通过IE和Chrome浏览器,但是当我尝试从CuiseControl.Net强制执行该测试时,IE失败,但以下情况除外:
1回复

构建失败后的Cruiscontrol Force构建

buildafterfailed =“ true”在.net中不起作用,我该怎么做? 我正在尝试使用CruiseControl触发强制构建,直到构建成功。
1回复

结合使用Powershell和CruiseControl.Net来安全存储密码?

CruiseControl.Net tfs集成要求将具有较高特权的用户的用户名和密码存储在配置文件中。 我对此不太满意,并尝试过考虑安全存储密码并保持全自动构建的方法。 Powershell通过ConvertTo-SecureString和ConvertFrom-SecureString
1回复

如何使用TortoiseSVN设置CruiseControl.NET连续监视服务器?

我已经在服务器上安装了Visual SVN服务器,并且还创建了存储库。 我在客户端计算机上安装了TortoiseSVN客户端。 我所有的网络计算机都通过himamchi连接。 我想配置CruiseControl.NET以便在新检查时构建存储库。 如果构建失败,则向Visual SVN
1回复

如何使用Cruise Control.net在ccnet.config中设置msbuild脚本路径

当我尝试使用Cruise Control运行脚本时,我的执行力不足。请查看我的代码,让我知道我在哪里做错 ccnet.config文件 我在下面提到的mybuild.xml中定义的脚本
3回复

CruiseControl(原创)和CruiseControl.NET之间的差异

原始CruiseControl和.NET端口之间有什么区别吗? 我比较了2,但除了它已经开发的语言之外找不到任何重大差异。我想使用其中一个用于(自动)测试Web应用程序,使用Selenium和Subversion,甚至Groovy但是不知道选哪个。 [编辑]在看了CC和Hudson之后,