Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 预生成任务-删除CruiseControl.NET中的工作副本_Visual Studio_Continuous Integration_Cruisecontrol.net_Visualsvn Server - Fatal编程技术网

Visual studio 预生成任务-删除CruiseControl.NET中的工作副本

Visual studio 预生成任务-删除CruiseControl.NET中的工作副本,visual-studio,continuous-integration,cruisecontrol.net,visualsvn-server,Visual Studio,Continuous Integration,Cruisecontrol.net,Visualsvn Server,我目前正在工作中建立一个持续集成环境。我们正在使用VisualSVN服务器和CrusieControl.NET。有时生成会失败,症状是CruiseControl.NET工作副本中存在冲突。我相信这是由于我设置VisualStudio解决方案的方式。希望我们在这个环境中运行的项目越多,我们对如何设置它们的理解就会越好,所以我不会质疑为什么冲突会在这个阶段发生。为了修复构建,我删除了工作副本并强制创建一个新的构建-每次(当前)都是这样。因此,我的问题是:删除工作副本是否是持续集成构建过程的有效部分,

我目前正在工作中建立一个持续集成环境。我们正在使用VisualSVN服务器和CrusieControl.NET。有时生成会失败,症状是CruiseControl.NET工作副本中存在冲突。我相信这是由于我设置VisualStudio解决方案的方式。希望我们在这个环境中运行的项目越多,我们对如何设置它们的理解就会越好,所以我不会质疑为什么冲突会在这个阶段发生。为了修复构建,我删除了工作副本并强制创建一个新的构建-每次(当前)都是这样。因此,我的问题是:删除工作副本是否是持续集成构建过程的有效部分,以及如何执行

我尝试过包括MSTask和从命令行调用delete在内的解决方案,但我没有任何运气


抱歉这么罗嗦-干得好,这是一个测试版:)

对于任何构建过程来说,在进行任何重要构建之前进行“清理”是非常常见的,通常也是一种良好的做法。这可以防止来自先前构建的任何“工件”污染输出

清理本质上就是删除工作副本。

@Brad Barker

清洁意味着只清除构建产品

删除工作副本也会删除所有其他内容(源文件和项目文件等)

一般来说,如果您正在构建一台无需执行完全删除操作的机器,这是很好的,因为这复制了普通开发人员所做的工作。它在更新过程中发现的任何冲突都是对开发人员期望的早期警告


@杰米


对于正式版本,是的,最好进行完全干净的结账。因此,我想这取决于构建的目的。

在构建之前或之后进行完全删除是一种良好的做法。这意味着您的构建环境不可能拾取过期文件。您的建筑与存储库中的内容完全一致

删除工作副本是可能的,因为我已经用Nant完成了

在Nant中,我会在自己的文件夹中有一个干净的脚本,而不是我要删除的脚本,然后从CC.net调用它

我假设这在批处理文件中也是可能的。看看rmdir命令

@保尔多


我更喜欢我的CI服务器执行完全删除,因为我不想在执行发布构建时感到意外,发布构建应该始终在干净的状态下完成。但是它应该能够同时处理这两个问题,没有理由不

@jamie:在使用持续集成服务器时,有一个原因可能无法每次都进行干净的构建——构建时间。在我所做的一些项目中,干净的构建需要80分钟(一个由数千个C++文件组成的嵌入式项目来进行检测,然后对多个目标进行编译)。在这种情况下,您必须权衡快速反馈的好处与干净构建捕获增量构建无法捕获的内容的可能性。在我们的例子中,我们致力于改进和并行化构建过程,同时允许在我们的CI机器上进行增量构建。我们确实遇到了一些问题,因为我们没有进行干净的构建,但是,通过每晚或每周进行一次干净的构建,您可以在不丢失CI机器的快速反馈的情况下消除风险。

如果您签出CC.NET,则有一个补丁签入以实现CleanCopy for Subversion,该补丁完全按照您的要求执行,并且只需在源代码控制块内将CleanCopy设置为true,就像TFS一样一个

CleanCopy for Subversion现在在版本1.4.1中实现。您只需在配置中将CleanCopy设置为true