「工欲善其事,必先利其器」作為.Net 開發者來說最大的利器就是Visual Studio。
最近Visual Studio剛過完20歲週年並且發佈了最新版本VS 2017,當然要第一時間來試試看到底可以對開發增加多少幫助,這個時候會發現,怎麼都找不到離線安裝的版本了呢?
這篇將會介紹如何建立離線安裝版本的安裝檔。
更新記錄
- 2018/11/20 - 增加 需要注意下載的位置不要有空格 - 感謝 謝佳宏 的回饋
Visual Studio 的安裝方式
現在軟體開發講究都是快速Release,這個從VS近年來的更新速度完全看的出來,為了趕上這些迭代更新的速度,VS的安裝方式也越來越不一樣。
從早期的光碟方式,到後來變成下載ISO檔案居多,最後到完全透過一個exe檔案邊安裝邊下載的模式 (VS 2017)。
透過EXE邊下載邊安裝好處是未來有更新任何部分,可以使用同一個exe來執行更新(想一下如果要快速迭代更新要建立多少個ISO檔案),但是壞處是如果要裝在一個網路速度很慢或者沒有網路環境的地方,就gg了。
幸好雖然VS 2017只有提供exe安裝方式 - 但是提供了方法讓我們可以建立自己的離線安裝包。
建立離線安裝包
要建立離線安裝包非常簡單,只需要:
- 下載對應版本的exe安裝檔
- 透過傳入參數的方式來建立離線安裝
1. 下載對應版本的exe檔案
可以到 Visual Studio的官網(https://www.visualstudio.com/downloads/)選擇要裝的版本下載。
直接連接
- Community - https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15
- Professional - https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Professional&rel=15
- Enterprise - https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Enterprise&rel=15
2. 建立離線安裝包
下載下來之後,用cmd執行執行以下語法即可:
vs_community.exe --layout c:\vs2017offline
- vs_community.exe
- 下載下來的exe,不同版本名稱不同,這邊用community做範例
- --layout
- 告訴exe檔案要離線安裝
- c:\vs2017offline
- 這個則是要安裝到哪裡的路徑,可以自己改變要存在哪裡
請注意儲存到哪裏的路徑避免有空白,如果路徑有空白的話可能需要透過引號包起來,避免有問題。
這個時候會出現一個請等待的畫面。
然後會在開啟一個cmd的視窗,並且會自動開始下載:
這個時候就可以放著給他跑了,當下載完成,cmd會自動關掉,不會有任何訊息說下載完成。
檔案大小
我這邊只下載英文語系,然後全部功能大約需要 12.7GB。
VS 2013/2015的離線安裝建立方式
其實VS 2013開始的exe安裝方式也可以透過--layout參數來建立離線安裝包。和官方提供的ISO來比,這種方式的下載出來的比較全。
VS 2013/2015的安裝畫面和2017最大差異在於之前版本可以直接用UI選擇要下載什麼,並且完成會有訊息告知完成。
其他參數
上面介紹的是基本建立方式,但是如果想要只安裝部分元件或者只要部分語言的話就需要其他參數,這邊介紹幾個其他參數的用法。
下載特定語系
預設,offline install是下載所有語系,但是通常情況是只會用到需要的語系而已。以我個人來說,習慣使用英文版,這個時候其他語系的檔案只是增加下載時間而已。
語系可以在後面增加參數:--lang $languageCode1
- --lang
- 告訴她要下載特定語系
- $languageCode1
- 要下載的語系名稱,如果有多個,就往下加每個code之間用空白區隔。
整個組合在一起就是:
# 安裝英文版本
vs_community.exe --layout c:\vs2017offline --lang en-US
# 安裝英文和繁體中文版本
vs_community.exe --layout c:\vs2017offline --lang en-US zh-TW
其他語系編號
如果要安裝其他語系版本,語系編碼可以在這看到:https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio#list-of-language-locales
只下載特定功能
假設不希望下載全部功能,這個時候可以用參數 --add $componentId
- --add
- 告訴它下載特定功能就好
- $componentId
- 要下載的功能清單,多個就用空白區隔即可
# 只安裝 azure和github相關功能
vs_community.exe --layout c:\vs2017offline --add Microsoft.VisualStudio.Workload.Azure Component.GitHub.VisualStudio
Conponent Id 清單
可以參考https://docs.microsoft.com/en-us/visualstudio/install/workload-and-component-ids找到自己要的component Id其他更多參數
還有其他參數可以下,在這邊可以找到相關資訊https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio
如何更新離線安裝包
假設過了一段時間之後,VS 2017的Component有更新,這個時候是否需要重新下載全部的功能呢?
其實是不用的,只需要把你當初下載離線包的指令在執行一次,有更新的部分就會自動更新。
這邊要注意是一樣的指令哦,要不然會下載其他東西。舉例來說,如果當初只安裝英文版,後來沒加上英文版,其他語系也會被下載下來。
結語
這篇介紹了如何建立自己的離線安裝包並且如何客制一些常見的參數。當離線包有了,就可以節省其他人安裝的時間。
其他資訊
- 官方介紹如何建立離線包
- https://docs.microsoft.com/en-us/visualstudio/install/create-an-offline-installation-of-visual-studio
- exe其他參數
- https://docs.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio
- 可安裝的component 對應id清單
- https://docs.microsoft.com/en-us/visualstudio/install/workload-and-component-ids