当前位置:  开发笔记 > 开发工具 > 正文

使用CruiseControl.net构建部署

如何解决《使用CruiseControl.net构建部署》经验,为你挑选了1个好方法。

我已经看到了一些关于如何进行构建部署的示例,但是我有一些我想做的独特之处:

    将构建部署到具有内部版本号的文件夹(例如,Project\Builds\8423)

    更改.NET AssmblyInfo.cs中的版本号以匹配内部版本号

有没有人在使用NAnt + CruiseControl.net的.NET项目之前做过这个?



1> 小智..:

使用内部版本号将构建部署到文件夹非常简单. CruiseControl.NET的NAnt任务会自动将许多属性传递给您的NAnt脚本.该CCNetLabel属性是你用它来创建您的部署目录中的一个.CruiseControl.NET文档中实际上有一个稍微过时的示例NAnt脚本就是这样做的.这是一个更好的版本:


    
        
    

    

    
    
        
            
        
             

至于二进制文件的版本控制,我发现以下方法比尝试更改AssemblyInfo.cs文件更简洁.基本上我创建一个CommonAssemblyInfo.cs文件,该文件位于任何项目之外,与解决方案文件位于同一目录中.此文件包含我正在构建的所有程序集共有的内容,例如公司名称,版权信息,当然还有版本.此文件在Visual Studio中的每个项目中链接,因此每个项目都包含此信息(以及一个小得多的AssemblyInfo.cs文件,其中包含程序集特定的信息,如程序集标题).

当通过Visual Studio或NAnt在本地构建项目时,使用CommonAssemblyInfo.cs文件.但是,当项目由CruiseControl.NET构建时,我使用NAnt通过任务替换该文件.这是NAnt脚本的样子:


    

    
    
        
    

    
    
        
            
                
                
            
            
                
                
                
                
                
            
            
                
            
        
    



    
        
            
            
            
        
    

请注意在版本目标中设置AssemblyVersionAttributeAssemblyInformationalVersionAttribute值的位置.该CCNetLabel财产被插入到版本号.为了获得额外的好处,您可以使用CruiseControl.NET插件,如前面提到的SvnRevisionLabeller.使用它,我们得到像"2.1.8239.0"这样的标签,其中"8239"对应于我们正在构建的Subversion版本号.我们将此构建号直接转储到AssemblyVersionAttributeAssemblyInformationalVersionAttributes中,我们的版本号和我们程序集上的版本号都可以很容易地追溯到我们的版本控制系统中的特定版本.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有