部署与CruiseControl.Net和SVN的ASP.Net Web应用程序 - 摆脱.svn文件夹

问题描述:

我有一个CruiseControl.Net项目建立一个ASP.Net项目,使用< svn>任务拉最新代码来自源代码管理。部署与CruiseControl.Net和SVN的ASP.Net Web应用程序 - 摆脱.svn文件夹

成功构建时,我使用< buildpublisher>将站点复制到部署文件夹。我的问题是,buildpublisher正在将所有内容复制到目标文件夹,包括每个.svn文件夹及其内容。复制到部署文件夹之前删除.svn文件夹的最简单方法是什么?

一个简单的解决方案(如果你的作品): 添加了一步任务块之后,发布商。

<exec> 
    <executable>svn.exe</executable> 
    <baseDirectory>c:\path_to_my_svn\</baseDirectory> 
    <buildArgs>export MyWorkingCopyPath MyTemporaryPath </buildArgs> 
</exec> 

SVN将工作副本MyWorkingCopyPath(仅版本控制下的项目)复制到目标文件夹MyTemporaryPath

而在发布者中,您必须将源更改为MyTemporaryPath

因此,它只需添加1个任务。

+0

谢谢。我使用这个建议的修改版本来使它工作。我实际上需要在构建之前执行导出,并将构建任务设置为使用MyTemporaryPath的内容。否则,如果在生成后完成导出,则只会复制原始源文件,并且Bin文件夹会被留下。 我希望有一种方法可以让源代码控制任务自动执行导出,但这是有效的。 – 2010-05-10 17:11:30

您需要从svn导出进行部署。使用与ARG =更新了svn exe文件,而不是通常ARG =上设置

这将你的文件导出到您的部署目录,删除了svn文件夹

我用这个线网络部署项目。也许你能适应它为你的目的(的MSBuild是一大奇迹对我来说)

<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'"> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\obj\**\*.*" /> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*.*" /> 
<ExcludeFromBuild Include="$(SourceWebPhysicalPath)\**\.svn\**\*" /> 
</ItemGroup>