一、前言
由于公司要求專案需要走CI構建平臺,拋棄掉之前的人工編譯打包方式,所以需要調研一下專案怎么通過命令列編譯出產物,
二、準備作業
- 在構建機器上安裝vs(本文示例為vs2017)
- 將代碼上傳版本控制倉庫(本文示例為Gitlab),并確保構建機器可以正常訪問并下載源代碼
- 確保構建機器可以正常編譯目標專案,最快捷的方案就是在構建機器上跑一下
- 修改專案的編譯配置及平臺,例如我設定了Release+CI作為CI構建用的配置,并把輸出路徑改為了
..\CIResult\
三、撰寫構建命令
- 找到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\*來打個壓縮包,
四、注意事項
- 如果專案中使用了nuget管理參考的組件,建議把packages檔案夾加入源代碼倉庫中,因為我不知道怎么讓vs在編譯前自動下載包并還原,只能用這個笨方法了,附上git的檔案包含腳本,打開.gitignore檔案加上一行
!/packages/* - 編譯的錯誤日志打在了courtClient.log檔案里
五、結束
自己摸索的,也踩了些坑最后總結出的方法,可能不是很合理,希望大佬們如果有更好的方法可以批評指正,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/30468.html
