1、前言
因爲公司要求項目須要走CI構建平臺,拋棄掉以前的人工編譯打包方式,因此須要調研一下項目怎麼經過命令行編譯出產物。git
2、準備工做
- 在構建機器上安裝vs(本文示例爲vs2017)
- 將代碼上傳版本控制倉庫(本文示例爲Gitlab),並確保構建機器能夠正常訪問並下載源代碼
- 確保構建機器能夠正常編譯目標項目,最快捷的方案就是在構建機器上跑一下
- 修改項目的編譯配置及平臺,例如我設置了Release+CI做爲CI構建用的配置,並把輸出路徑改成了
..\CIResult\
3、編寫構建命令
- 找到vs的安裝路徑,找到devenv.exe,例如
D:\VS2017\Common7\IDE\devenv.exe
- 明確本身須要編譯的解決方案的名稱,例如:
ABC.sln
- 明確本身須要使用的編譯設置,例如前文設置好的:
Release
+ CI
- 編寫編譯命令,例如:
"D:\VS2017\Common7\IDE\devenv.exe" devenv "ABC.sln" /rebuild "Release|CI" /out courtClient.log
- 執行命令,就能夠到
..\CIResult\
去獲取產物了,若是嫌棄文件夾麻煩,能夠在編譯完成後再加一句命令WinRAR a -r ABC.zip CIResult\*
來打個壓縮包。
4、注意事項
- 若是項目中使用了nuget管理引用的組件,建議把packages文件夾加入源代碼倉庫中,由於我不知道怎麼讓vs在編譯前自動下載包並還原,只能用這個笨方法了。附上git的文件包含腳本,打開.gitignore文件加上一行
!/packages/*
- 編譯的錯誤日誌打在了courtClient.log文件裏
5、結束
本身摸索的,也踩了些坑最後總結出的方法,可能不是很合理,但願大佬們若是有更好的方法能夠批評指正。ui