我能够使用命令行创建一个离线安装程序,如下所示:
vs_enterprise__873301792.1489161815.exe --layout %CD%vs2017offline --lang en-US
我从中得到了大约 20 GB(1901 个文件)。
但是,众所周知,Visual Studio安装程序至少需要互联网连接才能初始化,即使使用这样的离线布局也是如此。 (但它不需要下载布局/图像中已经存在的包,因此它节省了真正的下载量。
在 VS 的 MS Web 文档中提到了更多参数: https://learn.microsoft.com/en-us/visualstudio/install/use-command-line-parameters-to-install-visual-studio
AFAIK,没有人想出如何使用它们来保证在没有互联网连接的情况下真正离线安装(在我看来,频道和/或目录很可能必须重定向以阻止 VS 安装程序上线)。
有人吗?
以下是参数,我的意思是:
--channelId可选:要安装的实例的通道 ID。这对于安装命令是必需的,如果指定了 --installPath,则忽略其他命令。
--通道 URI可选:通道清单的 URI。这可用于安装命令;对于其他命令,将忽略它。
--installChannelUri可选:用于安装的通道清单的 URI。由 --channelUri 指定的 URI(必须在指定 --installChannelUri 时指定)将用于检测更新。如果不需要更新,则必须指定 --channelUri 而不带参数。这可用于安装命令;对于其他命令,将忽略它。
--installCatalogUri可选:用于安装的目录清单的 URI。如果指定,通道管理器将尝试从此 URI 下载目录清单,然后再在安装通道清单中使用 URI。此参数用于支持脱机安装,其中将使用已下载的产品目录创建布局缓存。这可用于安装命令;对于其他命令,将忽略它。
在布局目录中,存在诸如catalog.json,channelmanifest.json,response.json vs_installer_version.json等文件。知道吗?
您无需执行任何特殊操作即可使脱机安装程序在没有任何互联网连接的情况下工作。即使在线channelURI
<offline folder>Response.json
点,它也不会每次都尝试更新组件列表或其他内容,您需要为此明确请求更新。
您唯一需要确保的是,在选择组件时,在"语言包"选项卡上选择已下载文件的语言 - 否则,它将尝试下载丢失的位。
安装程序仍将尝试访问网络
- 将遥测数据发布到
https://dc.services.visualstudio.com/v2/track
,并从安装程序中Microsoft.VisualStudio.Telemetry.Net35.dll
https://vortex.data.microsoft.com/collect/v1
- 从
https://crl.microsoft.com
中检索相关签名证书的 CRL
但两者都是可选的,安装程序不会失败,它也不能做到——我刚刚成功安装了禁用网络连接的东西。
要使离线安装程序正常工作,您需要"伪造"安装程序,使其认为有互联网连接,但连接不良。
为此,您需要将各种地址添加到本地"hosts"文件中。
有关要添加到主机文件的名称列表,请参阅 Visual Studio 2017 企业脱机安装失败。
我尝试安装证书,缓存文件夹的不同布局参数,但没有一个有效。我通过在缓存文件夹中运行vs_setup.exe而不是使用参数运行 v s_community.exe来解决此问题。