因本人一直使用.NET開(kāi)發(fā),在做項(xiàng)目的時(shí)候,每次都要涉及到各個(gè)環(huán)境的部署問(wèn)題,手工操作容易出錯(cuò),并且重復(fù)勞動(dòng)多,所以一直在尋找一個(gè)能實(shí)現(xiàn)自動(dòng)化部署的方案。
廢話不多講,先講講我的初步實(shí)現(xiàn)方案。
準(zhǔn)備工具:GIT版本控制(gitlab),Jenkins, msbuild
1. 安裝git版本控制器,提交代碼。(svn好像也可以), 并生成ssh public key上傳到gitlab的ssh key中(個(gè)人配置/SSH KEY)。
2. 安裝jenkins開(kāi)源工具。
3. Jenkins安裝git plugin, Msbuild插件(Manager Jenkins/Manage Plugins)
4. 配置Jenkins中的git(Manager Jenkins/Configure System)
在git欄中輸入name和Path: git install path/cmd/git.exe
5. 添加對(duì)應(yīng).NET framework version MSBuild
Name:.NET4.0PathtoMSBuild:%system%/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe6. 建立.NET項(xiàng)目文件,并添加MSBuild文件
建立一個(gè)解決方案nonsuch.sln,里面包含一個(gè)website: nonesuch.web.
在解決方案根目錄建立一個(gè)xml文件,改名為: build.targets
<?xmlversion="1.0"encoding="utf-8"?><application=true;P7. 新建一個(gè)任務(wù): Build a free-style software project1) Advanced Project options: Use custom workspace
輸入此任務(wù)的文件夾,獲取的git項(xiàng)目文件,將放入此文件夾中(d:/Git/nonsuch)。
2) Source code Management: Git
Repositories Url: 輸入項(xiàng)目的Git地址,如:
git@gitlab.gofund.com:dotnet/nonsuch.git
Repository browser: gitlab
Url: gitlab的url地址,比如: http://gitlab.gofund.com.cn/dotnet/nonsuch
Version: 6.2
3) Build
Build a Visual Studio Project or solution using MSBuild
MSBuild Version: .NET 4.0(之前配置的MSBuild版本)
MSBuild Build File: 這個(gè)地址就是之前配置的workspace路徑:
d:/Git/nonsuch/Build.targets
4) Post-build Actions
Archive the artifacts(這個(gè)主要是為了nuget下載的包,每次編譯之前保留)
File to archive : packages/**
5) 點(diǎn)擊Save保存,之后點(diǎn)擊:Build Now
8. 如果有時(shí)候提示git沒(méi)有權(quán)限,則進(jìn)入服務(wù),切換Jenkins的運(yùn)行者為當(dāng)前用戶。
9. 為了解決一些引用依賴路徑問(wèn)題,我用在msbuild中用了GetDirectoryNameOfFileAbove這個(gè)關(guān)鍵字,有興趣的可以搜索下。
10. 這樣就通過(guò)Jenkins工具,調(diào)用git版本控制器,自動(dòng)獲取最新版本代碼,發(fā)布到某個(gè)文件夾,然后IIS可以指向到發(fā)布的文件夾。但這樣涉及到web.config配置,如果希望不同環(huán)境的web.config配置不一樣,可以利用debug, release生成的web.config文件,甚至可以把配置放入到統(tǒng)一個(gè)數(shù)據(jù)庫(kù)中,根據(jù)機(jī)器的名字自動(dòng)獲取對(duì)應(yīng)環(huán)境。

這是我的實(shí)現(xiàn),不知道有沒(méi)有更好的解決方案。主要是利用msbuild, 這個(gè)還有很多功能需要去探索。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注