Visual Studio 离线安装移除旧版本

27

是否有可能从Visual Studio 2017离线安装的布局文件夹中删除旧版本的安装包?这个文件夹占用了我的硬盘很多空间。


微软链接(使用--clean参数):https://learn.microsoft.com/zh-cn/visualstudio/install/create-a-network-installation-of-visual-studio?view=vs-2022#remove-older-versions-from-a-layout - S.Serpooshan
3个回答

23

您可以使用新的--clean选项。您需要文件路径来列出包含这些废弃软件包的目录清单。您可以在离线布局缓存中的Archive文件夹中找到目录清单。

当您更新布局时,它们会保存在那里。在“Archive”文件夹中,有一个或多个名为GUID的文件夹,每个文件夹都包含一个废弃的目录清单。 GUID文件夹的数量应与您的离线缓存更新次数相同。

每个GUID文件夹内保存了几个文件。最感兴趣的两个文件是catalog.json文件和version.txt文件。 catalog.json文件是您需要传递给--clean选项的废弃目录清单。 version.txt文件包含此废弃目录清单的版本。基于版本号,您可以决定是否要从此目录清单中删除废弃的软件包。 您可以在处理其他GUID文件夹时重复此操作。在确定要清理的目录后,通过提供这些目录的文件路径来运行--clean命令。

示例:

vs_enterprise.exe --layout <layoutDir> --clean <file-path-of-catalog1> <file-path-of-catalog2> … 

vs_enterprise.exe --layout <layoutDir> --clean <file-path-of-catalog1> --clean <file-path-of-catalog2> … 

你也可以在<layoutDir>内调用vs_enterprise.exe,这里是一个示例:

c:\VS2017Layout\vs_enterprise.exe --layout c:\VS2017Layout --clean c:\VS2017Layout\Archive\1cd70189-fc55-4583-8ad8-a2711e928325\Catalog.json --clean c:\VS2017Layout\Archive\d420889f-6aad-4ba4-99e4-ed7833795a10\Catalog.json 
当您执行此命令时,安装程序会分析您的离线缓存文件夹,以查找要删除的文件列表。然后,您将有机会查看即将被删除的文件并确认删除。

这是最近的功能吗?如果我只有一个GUID,如果我选择将其清除,它会说一堆当前文件将被删除。我想我将不得不从头开始下载整个东西以在未来使用此功能。 - Damien
1
是的,这是一个新功能。 不需要再次下载整个软件包。在任何更新进度之后,将在“存档”文件夹下创建一个新文件夹。您可以使用该目录清除旧软件包。 - Arman
@Arman 在那之后删除存档文件夹是安全的吗?我看到该文件夹内只有JSON文件。 - LoneWOLFs
@LoneWOLFs 我认为可以,清理操作后删除那个文件夹是安全的。 - Arman
每次布局操作后,都会生成一堆JSON文件(例如_Response_20170609091955_backup.json_)。我们也可以把这些文件删除吗? - LoneWOLFs
我在更新离线布局之前已经删除了存档文件夹。在100%完成后,没有存档文件夹,我可以看到布局目录中有多个版本的软件包。现在如何清理旧软件包? - Mohsan

20

不错的工具,简单易用。 - Asiri Dissanayaka
谢谢您的付出!我很想知道,作为一家如此庞大的公司,为什么微软没有意识到开发这样简单、用户友好且绝对必要的工具来下载、更新和清理Visual Studio。这么长时间之后呢?! - S.Serpooshan

11
在离线缓存执行布局更新后,布局缓存文件夹可能包含一些过时的包,这些包已不再需要最新版本的Visual Studio安装。您可以使用--clean选项从离线缓存文件夹中删除过时的包。 微软文档:如何从布局中删除旧版本

一个本应该从一开始就存在的功能。看来我得进行全新的下载,才能开始利用它。 - avenmore
不需要重新做一个...它会正常工作...我正在使用第一个版本的相同布局文件夹。 - Hager Aly
1
文档显示,每次运行更新后,存档目录下应该有一个GUID文件夹。自首次发布以来,我已经运行了多次更新(并且文件夹的大小增加了一倍),但在最新更新后仍只有一个GUID文件夹。文档没有明确说明此第一次创建是否足以删除所有历史更新中的过时文件。 - avenmore
--布局完成后,将创建具有GUID的文件夹。 - Hager Aly
这并不会删除所有旧版本,我在使用 --clean 后可以删除约8GB,并且可以顺利安装VS。 - Mehdi Dehghani
我用这种方式后获得了96 GB的免费空间,哈哈,谢谢。 - Ali Yousefi

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