可根據VisualStudio專案檔(xxx.csproj)的設定, 在建置部署時的event執行需要的作業, 像compile時壓縮js檔, 或將程式用cmd指令deploy到特定主機。
相關程式及檔案
- VisualStudio 新增專案檔, 產生xxx.csproj
- MSBuild.exe 安裝VS時會自動安裝, 目前使用VS2015, 程式路徑在C:\Program Files (x86)\MSBuild\14.0\Bin
- yuicompressor-2.1.2.jar yahoo的js壓縮程式
作業要項
- 作業一 將壓縮js檔流程作業設定在xxx.csproj
- 作業二 寫batch檔, 用MSBuild程式執行csproj檔
作業一
1.PropertyGroup 設定專案及相關作業路徑
<WorkShop>"D:\LGPrj\LGPrj"</WorkShop> -- 專案路徑
<ScriptsTargetPath>"$(WorkShop)\Scripts"</ScriptsTargetPath> -- 來源路徑
<ScriptsDestPath>"$(WorkShop)\Scripts\min"</ScriptsDestPath> -- 目的路徑
<CompressToolPath>"$(WorkShop)\tools\yuicompressor-2.1.2.jar"</CompressToolPath> -- js壓縮jar檔位置
2.Target-Build 設定各target作業順序
案例只有一項名為CompressJS的target
<Target Name="Build">
<CallTarget Targets="CompressJS" />
</Target>
3.Target 設定target作業項
<Target Name="CompressJS">
<Message Text="CompressJS..." /> -- target開始訊息(非必要)
<Exec Command="java -jar $(CompressToolPath) $(ScriptsTargetPath)\common.js -o $(ScriptsDestPath)\common.min.js --charset utf-8 --nomunge" />
<Exec Command="java -jar $(CompressToolPath) $(ScriptsTargetPath)\index.js -o $(ScriptsDestPath)\index.min.js --charset utf-8 --nomunge" />
<Message Text="CompressJS END" /> -- target結束訊息(非必要)
</Target>
--charset utf-8
語系設定(有中文就要設utf-8)
--nomunge
不重編區域變數名字(可能是為了壓縮檔案, 預設會重編)
作業二
cd c:/Program Files (x86)/MSBuild/14.0/Bin
msbuild D:/LGPrj/LGPrj/LGPrj.csproj
執行
VS>工具>命令提示字元>執行BATCH檔