工作環境的網路管制多,簡單的事也變得有挑戰性。最近在測試 Jenkins,需在伺服器安裝 MSBuild 以自動編譯 Visaul Studio 專案,原本是下載、執行、下一步、下一步就搞定的小事,遇到安裝主機無法連上 Internet 就沒這麼簡單了。

Microsoft Build Tools 2015 的下一版不是 Microsoft Build Tools 2017,到 VS2017 變成 Build Tools for Visual Studio 217,採取隨選下載安裝概念,但如果要安裝的主機無法連上 Internet,需要費點手腳準備離線安裝檔。

做法如下:參考

  1. 網站找到 Build Tools for Visual Studio 217 下載安裝程式(vs_buildtools_xxxxx.exe)
  2. vs_buildtools_*.exe 可用來下載指定 Workload (工作負載) 儲存到指定目錄產生離線安裝包,但要先知道需下載哪些 Workload。
    Visual Studio Build Tools 2017 元件目錄有完整 Workload 清單,可用來查詢 需要安裝的項目。
  3. 輸入參數執行 vs_buildtools_*.exe 開始下載,以我的案例主要想編譯 ASP.NET 或 .NET Core 專案,故參數範例如下:
    vs_buildtools__617189595.1457490463.exe --layout X:\Temp\BuildTools --add Microsoft.VisualStudio.Workload.MSBuildTools --add Microsoft.VisualStudio.Workload.WebBuildTools --add Microsoft.VisualStudio.Workload.NetCoreBuildTools --includeRecommended --includeOptional --lang en-US
    
  4. 下載後會冒出一堆資料夾,將其複製到目標主機。
  5. certificates 目錄下有幾張根憑證,考量目標主機因無法上網有驗證問題,需手動匯入。(註:建議手動選取「受信任的根憑證授權單位」)
  6. 安裝好憑證,執行vs\_buildtools\_*.exe --noweb

    安裝程式會跳過下載步驟直接安裝,但走的仍是 Visual Studio 2017 標準安裝介面:

    補充一點,如上圖安裝介面有一些選擇性安裝項目,有一些預設已勾選,這部分未包含在 Workload 下載檔案裡,需搭配參數 --includeRecommended 或 --includeOptional 預先下載。如要安裝預設勾選項目,要加 --includeRecommended,若要額外加裝其他選擇性項目,則要加上 --includeOptional。若不在意多花時間下載及多佔空間,指定 --includeRecommended --includeOptional 全都包進來較省事。

安裝完畢,找到 MSBuild 安裝路徑 C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin,隨便找個測試專案,執行 msbuild C:\Temp\NameStamp\NameStamp.sln,編譯成功。

When installing VS build tools on a machine without Internet connection, you need to download the workload in another computer and copy the offline setup files. This article provides the recommended steps.


Comments

Be the first to post a comment

Post a comment


61 + 12 =