CCNET+ProGet+Windows Batch搭建全自動的內部包打包和推送及管理平台

來源:互聯網
上載者:User

標籤:

所要用的工具:

1、CCNET(用於檢測SVN有改動提交時自動構建,並運行nuget的自動打包和推送批處理)

2、ProGet(目前見到最好用的nuget內部包管理平台)

3、Windows Batch(windows的批處理,用於nuget的自動打包和推送)(這裡是最難解決的地方)

具體的搭建步驟:

一、先搭建CCNET的持續整合環境,可以參照以下這些文章:

http://www.cnblogs.com/jillzhang/archive/2008/03/03/1089099.html

http://www.cnblogs.com/wangjq/p/3977318.html

http://www.cnblogs.com/cnblogsfans/archive/2008/04/24/1169689.html

這裡可以使用設定檔:http://www.cnblogs.com/EasonJim/p/5773328.html

二、配置和安裝ProGet進行內部包管理:

下載和安裝步驟:http://www.cnblogs.com/EasonJim/p/5486530.html

安裝好之後建立幾個feed,如下:

其中這裡包含的符號伺服器所用到的包DebugDefault(Debug模式的包)、ReleaseDefault(Release模式的包)、SymbolsDebugDefault(Debug模式下包含源碼的包)、SymbolsReleaseDefault(Release模式下包含源碼的包)。

有了這四個,基本上都是只用到Release的兩個,其餘的都留著以後備用。

其實ProGet不需要過多的配置,只要安裝到建立好Feed之後一些都OK了。

注意:這裡的ProGet的apikey為這樣的形式:使用者名稱:密碼;在nuget命令列下用setapikey時用到,比如Admin預設帳號密碼時是這樣使用:nuget -setapikey Admin:Admin

三、編寫自動打包的指令碼,並完成之後自動推送我們內部四個Feed上,這裡我已經寫好了批處理,並使用RunNuGetPackage.bat即可,並修改如下自己實際資訊,其餘的批處理都是看個人需要使用。

GitHub地址:https://github.com/easonjim/NuGetRun

下載回本地之後,根據實際情況配置apikey,已經feed的推送地址,並用一個檔案夾的形式放置在項目的根目錄,因為批處理上已經用cd..進行上一層的跳轉,可根據實際進行修改,如下放置:

四、完成上面步驟之後,可以進行測試,先用RunMSBuild.bat編譯以下項目(如果不行,檢查裡面的參數配置),再進行RunNuGetPackage.bat指令碼的運行(如果不行,檢查裡面的參數配置),都沒有問題之後,提交SVN,並用CCNET進行跑一下。

這裡提供我配置的項目節點:

   <msbuild>        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>        <buildArgs>        /p:OutputPath=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Debug;Platform="Any CPU";Configuration=Debug;GenerateDocumentation=true;DocumentationFile=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Debug\Easemob.Restfull4Net.xml;DebugSymbols=true        </buildArgs>        <workingDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net</workingDirectory>        <projectFile>Easemob.Restfull4Net.csproj</projectFile>        <targets>Build</targets>        <timeout>900000</timeout>      </msbuild>            <msbuild>        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>        <buildArgs>    /p:OutputPath=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Release;Platform="Any CPU";Configuration=Release;GenerateDocumentation=true;DocumentationFile=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Release\Easemob.Restfull4Net.xml;DebugSymbols=true        </buildArgs>        <workingDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net</workingDirectory>        <projectFile>Easemob.Restfull4Net.csproj</projectFile>        <targets>Build</targets>        <timeout>900000</timeout>      </msbuild>      <exec>        <executable>RunNuGetPackage.bat</executable>        <baseDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\NuGetRun</baseDirectory>        <buildArgs>all</buildArgs>        <buildTimeoutSeconds>180</buildTimeoutSeconds>        <successExitCodes>0</successExitCodes>            </exec>

原理為:先編譯Debug版本並輸出檔案,再編譯Release版本,最後運行RunNuGetPackage.bat的指令碼進行包的打包和推送。

大致的原理可以這樣描述:1、公用庫的的代碼提交到SVN之後。2、CCNET自動檢測並編譯。3、編譯好之後用批處理進行包的自動認可。

這裡有一點公用庫開發時要注意的:1、規範。2、版本號碼。參考:http://www.cnblogs.com/EasonJim/p/5880233.html

關於符號伺服器源碼調試的方法:http://www.cnblogs.com/EasonJim/p/5891742.html;如果想要使用這個,那麼上面項目編譯時間的路徑就不應該包含中文。

CCNET+ProGet+Windows Batch搭建全自動的內部包打包和推送及管理平台

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.