[Visual Studio] 編製 Visual Studio 2017 的離線安裝媒體

Visual Studio 2017 將於 3/8 零時 (台灣時間) 正式發表,在發表的前數個小時,MSDN 訂閱者下載區已經有 Visual Studio 2017 的安裝程式放上去了,不過並沒有發布 ISO 檔案,Visual Studio Community 2017 也是,因此特別說明如何建立一份可離線安裝 (Offline Installation) 的媒體,以利在沒有網路時進行安裝。

Visual Studio 2017 的最大進步之一是它的安裝體驗 (Installation Experiences),和以往的 Visual Studio 安裝程式有很大不同,預設的安裝來源是網路,也就是說可以隨時執行安裝程式來安裝 Visual Studio 的功能或是更新,而不用像之前還要抓很大包的 ISO 檔案 (7GB 的檔案要抓粉久...),雖然在 Visual Studio 2012 開始就有從網路下載元件的功能,但是用的人其實不多,一來也是因為安裝速度實在不夠快,而且大家都很習慣用 ISO 來安裝,網路下載又因為網速不夠快或是因為在企業內部可能會被封鎖等等。既然 Visual Studio 2017 大力推動網路下載,相信它一定有做過相當大的改良,我在從 VS 2017 RC 時安裝,發現它真的速度有變快,和使用 ISO 安裝快不相上下了。

相關的安裝體驗說明可參考官方 blog 的兩篇文章:

https://blogs.msdn.microsoft.com/visualstudio/2016/04/01/faster-leaner-visual-studio-installer/
https://blogs.msdn.microsoft.com/visualstudio/2016/04/25/anatomy-of-a-low-impact-visual-studio-install/

不過安裝體驗改善了,還是沒辦法解決在沒有網路的情況下的安裝情境,因此微軟也在 Visual Studio 2017 安裝程式中加入了編製離線安裝媒體 (Make Offline Installation Media) 的功能,雖然說是編製離線安裝媒體,但其實也只是將原本需要經由網路下載的 Visual Studio 元件先行下載並集中在與安裝程式相同的位置,因此建議使用一個空資料夾來放。

編製離線安裝媒體的方法很簡單,只要使用命令列提示字元 (Command Line Prompt) 中執行下列指令即可:

[visual studio setup file] --layout [offline installation folder] --lang [visual studio language]

例如 Visual Studio Community 2017 的安裝程式執行檔是 vs_community.exe,要將安裝檔案下載到 C:\vs2017,要安裝的是繁體中文的 Visual Studio,則指令可以這樣下:

vs_community.exe --layout C:\vs2017 --lang zh-tw

Visual Studio 安裝程式就會開始啟動下載程序。

並下載所有 Visual Studio 2017 安裝所需的套件。

然後就是等它全部下載完了,下載完畢後,拿一支夠容量的 USB 把安裝媒體的資料夾放進去,執行裡面的安裝程式執行檔,就可開始安裝了。

我編寫這篇文章時已下載了 16.5GB 的檔案,但還沒完成...

除了上述指令參數外,Visual Studio 安裝程式還可以允許指定要下載哪些套件,可以先在這裡查詢要下載套件的 Component ID,然後以--add 指令設定要下載的 Component ID (可以多個,用空白分隔),--lang 也可以指定一次下載多個語系 (一樣用空白分隔,例如若要同時下載英文與繁體中文檔案,可設定 --lang zh-tw en-us)。

2017/3/15 加註:

有朋友詢問為何下載了安裝檔案卻還是要連上網,根據最新釋出的文件來看,在離線安裝資料夾內有個 certificates 資料夾,裡面有三個憑證:

要先安裝這三個憑證,然後再執行離線安裝資料夾內的安裝程式執行檔即可。

安裝憑證時會問你密碼,但不用輸入直接下一步即可 (密碼為空白)。
雖然 Offline Installation 可以預先下載檔案,但似乎有部份元件仍然需要依賴網路才能處理,因此建議網路線不要拔掉,若是一定要在無網路環境下安裝,可能就要用自選元件的方式來安裝。這個問題已經有人反應給微軟,若有進一步訊息更新時會再更新本文。

References:

https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio

https://www.hanselman.com/blog/HowToMakeAnOfflineInstallerForVS2017.aspx