如何下载Visual Studio 2017社区版进行离线安装?

32
我想通过执行 vs_Community.exe --layout f:\vs2017c\ 来获取 Visual Studio 2017 Community Edition 离线分发,如文档所述(vs_Community.exe 下载在此处或通过直接链接),但这并不起作用。我只得到了两个文件:f:\vs2017c\vs_installer.version.jsonf:\vs2017c\certificates\vs_installer_opc.SignCertificates.p12。我也尝试过使用 /layout 替代 --layout,但没有成功。我错在哪里了?另外,是否有 ISO 文件可用呢?
更新:我安装了证书,重启了计算机,并重新尝试运行安装程序多次。但没有什么变化。有几次我能看到控制台中出现红色字体的东西,但持续时间不到半秒钟。最后我运行了 CCleaner (带有完整的 CCEnhancer 自定义清理列表)进行了清理(再次进行!我已经在第一次尝试之前完成了这一步骤),然后重试,现在正在下载...
更新2:我以为我成功了,但事实并非如此。我所做的是一个批处理文件,内容如下:
vs_Community.exe --layout f:\vs2017c --lang en-US --add [a list of 133 individual component IDs]

通过运行此命令的结果,安装程序试图下载所有组件(包括我没有选择的语言),我只需要en-us。 我注意到它正在下载我不需要的东西,因此终止了该进程并删除了所有内容以进行全新的开始。 下次我只需要单个工作负载而不是列出所有单个组件。 我甚至尝试将其简化为仅一个工作负载。
vs_Community.exe --lang en-US --layout f:\vs2017c\ --add Microsoft.VisualStudio.Workload.ManagedDesktop

但是这种方法行不通。相反,在“请稍等,我们很快就会完成...”进度条完成时会弹出以下内容半秒钟:

enter image description here

更新3:

我发现在布局路径的末尾加上反斜杠会破坏它。例如,vs_Community.exe --layout f:\vs2017c是可以的,但 vs_Community.exe --layout f:\vs2017c\则不行。然而,这并不是唯一的问题-在vs_Community.exe --layout f:\vs2017c之后同时列出许多工作负载和;includeRecommended;includeOptional也会破坏它(虽然我已经试过以只有一个工作负载和一个额外组件的方式,并且(重要条件)清除了临时文件,这个方法是可以正常运行的)...

更新4:

我已经成功获取了窗口标题截图中显示的f:\vs2017c\q.2ho\resources\app\layout\Setup.exe (这有点棘手,因为它只出现了几秒钟,并且很快就会自动删除),但是它的帮助输出与上面的帮助信息非常不同。似乎在之前的情况下,它链式启动了其他exe。下面是它自己的输出,没有明显的方法来指定单个工作负载/组件:

q.2ho\resources\app\layout\Setup.exe output

最后,我放弃尝试选择单个组件和工作负载,并尝试了下面这个也没有成功:vs_Community.exe --lang en-en --layout f:\vs2017c --all --includeRecommended --includeOptional

最终我只使用了vs_Community.exe --lang en-en --layout f:\vs2017c --all-它可以工作,并且只下载我需要的语言,但实际上包括了一些我不需要的组件。生成的目录大小为18 GB。

我已经完成了下载和安装,但关于如何可靠地使用布局功能参数的问题仍然存在。


2
https://www.hanselman.com/blog/HowToMakeAnOfflineInstallerForVS2017.aspx - Alexan
我本以为我完全复制了你的结果,但是在开会离开一段时间后回来发现VS2017正在下载其他资源。没有什么能让我意识到这会发生。这就是为什么我最初认为我得到了与你完全相同的结果。 - David Tansey
2
为什么微软不提供UI应用程序来选择所有组件和本地缓存文件夹,并将所有文件下载到那里?这应该是一个逻辑方式(而不是命令行)! - S.Serpooshan
一个快速的问题,使用 --includeRecommended--includeOptional 两个参数是否会同时下载推荐和可选组件?从 layout.json 文件的内容来看好像并不是这样。 - Sнаđошƒаӽ
刚从微软的GitHub页面发现,你需要指定--includeRecommended--includeOptional来安装推荐和可选组件,但是使用--layout命令创建离线安装程序时,只需使用--includeRecommended来包括仅推荐的组件,并使用--includeOptional来包括推荐和可选组件。我的意思是WT*,这本应该更简单和一致。在此处 - Sнаđошƒаӽ
10个回答

9
  • 我将“vs_professional.exe”保存在我的用户下载目录中,在其他任何磁盘或路径都无法正常运行。
  • 安装了证书,无需重新启动计算机。
  • 从管理员命令提示符窗口执行自定义(2种语言和一些工作负载)命令,针对位于辅助磁盘“E:\vs2017offline”上的离线根文件夹。

从未想过微软会以这种方式分发软件,我知道下载Visual Studio的人应该具备高级的计算机和操作系统知识,但是这就像是回到30年前。


1
实际上,安装程序的质量似乎只有中学黑客马拉松级别:使用一个新的和时髦的流行词库,如Electron(并不意味着它不好,但在构建一个非“仅仅为了好玩”的产品之前,需要获得一些经验),阅读一个15分钟的教程,构建一个看似工作正常的应用程序,并在没有任何合理测试的情况下发布。但我可以原谅这一点,因为我对Visual Studio本身非常满意,并且很感激能够免费使用一个功能合理的版本(社区版包括我所需的所有内容,不能与几乎无用的Express版相比)。 - Ivan

6
我已经按照这里的确切步骤操作,一切都运行得很顺利:https://learn.microsoft.com/en-us/visualstudio/install/install-vs-inconsistent-quality-network 只需三个简单步骤:
第1步:从下载页面(https://www.visualstudio.com/downloads/)下载相应的Visual Studio 2017版本。
第2步:以管理员身份打开命令提示符,指向Visual Studio下载exe所在位置,并执行以下命令(此命令专门用于Web和桌面开发):
vs_community.exe --layout c:\vs2017layout --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional --lang en-US

步骤三:在命令提示符中遍历到路径c:\vs2017layout,然后运行以下命令(这个命令是专门用于Web和桌面开发的)

vs_community.exe --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --add Component.GitHub.VisualStudio --includeOptional

5
只需使用以下内容进行“最小化”C#安装:
vs_Community.exe --layout f:\vs2017c --lang en-US --add Microsoft.VisualStudio.Workload.ManagedDesktop

这肯定有效。您第一条命令行的错误在于末尾的反斜杠。没有它,它就可以工作了。您不必下载全部内容。

您可以将以下工作负载(或其子集)添加到命令行中:

Microsoft.VisualStudio.Workload.Data Microsoft.VisualStudio.Workload.NetWeb Microsoft.VisualStudio.Workload.Universal Microsoft.VisualStudio.Workload.NetCoreTools

有时下载器似乎不太喜欢太多的软件包。但是您可以逐步下载软件包(添加其他工作负载),这样可以解决问题。就像您想要的那样。
有趣的是,安装程序之后将仅下载您之前未下载的所选软件包,因此在这一点上它非常智能。
(当然有更多可用的软件包)。

1

上面的命令对我很有效

C:\Users\marcelo\Downloads\vs_community.exe --lang en-en --layout C:\VisualStudio2017 --all


3
对我来说,上面的方法也行,只需要使用'--lang en-US'而不是'--lang en-en'。 - rvd

0

您应该进入布局文件夹并执行以下命令:

F:\vs2017c>vs_community.exe /finalizeInstall

然后它将自动拾取缓存组件,无需下载。


这个不起作用。文档说你必须执行与下载缓存时相同的命令,但不包括语言和布局(--lang en-US --layout VisualStudio2017)。不幸的是,这也不起作用。在缓存文件夹中,您会找到一个vs_setup.exe,这就是您的命令。它将打开一个带有先前选择的软件包的GUI。然后,您只需单击>>安装<<即可。 - Gustavo Rodríguez

0

看起来你只完成了说明书中的第一步,即“创建离线安装文件夹”。你是否执行了第二步呢?即“从离线安装文件夹中安装” - 安装证书,然后在文件夹中运行vs_Community.exe。


事实上,我最初没有安装证书,但是安装并重新启动后什么也没改变。令人惊讶的是,解决方案(虽然我不确定,因为它正在下载,但我们必须等待直到它成功完成才能真正考虑这是一个解决方案)是运行CCleaner并清理一切(尽管我今天早些时候已经执行过此操作)。 - Ivan

0

下载完成后,请检查您的%temp%文件夹。在我的情况下,下载同时发生在临时文件夹和我指定的文件夹中。下载完成后,临时文件夹中的文件不会被删除。
此外,请确保系统分区(或您的%temp%所在位置)有足够的空间。对于社区版下载而言,需要超过16GB的空间来存储所有内容。


正如我之前提到的,清理%temp%有所帮助,但这只是部分解决方案。虽然这是必要的,以使其能够工作,但仍然不足以使其按预期工作(让我选择组件)。 - Ivan

0
不,你的f:\vs2017c目录中应该直接有一个.exe文件(vs_Community_xxxxx.exe)!
从这个目录开始,而不是从更长的路径开始。下载的软件包名称有些非常长,如果从更长的路径开始,它会失败。

0

0
我想要的只是 1) 纯英语,和 2) 构建一个用 C 语言编写的传统桌面应用所需的最基础的知识。不需要 Azure、移动开发、.NET 或其它我不知道如何使用的组件。
[Note: Options are in multiple lines for readability, but they should be in 1 line]
vs_community__xxxxxxxxxx.xxxxxxxxxx.exe
    --lang en-US
    --layout ".\Visual Studio Cummunity 2017"
    --add Microsoft.VisualStudio.Workload.NativeDesktop 
    --includeRecommended

我从"工作负荷和组件ID"网站(https://learn.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-community)选择了"NativeDesktop"。
结果下载了大约1.6GB的文件,安装后占用了5GB的空间。我知道我可以删除一些不必要的组件来节省空间,但列表太长了,所以我就停在那里了。
对我来说,"--includeRecommended"是关键的因素,它包括Windows SDK以及其他构建传统项目所需的基本内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接