不久前,我为 VS2017 Professional(版本 15.5)创建了一个离线安装布局——这是几个开发主机工作的基础。
现在我们要升级到 VS2017 - 15.8 版 - 所以我创建了现有布局的 1:1 副本并运行
vs_Professional.exe --layout <path_to_layout>
运行了一段时间并更新了吗?全部?布局中的包。
使用此更新后的布局进行全新安装效果很好,但是 - 当使用此布局更新安装了 15.5 版的主机之一时,更新过程失败,退出代码为“1”。
旁注:VS 实际上声明它现在是 15.8.4 - 但它退出时出现错误代码.. 所以..?
我用于安装/更新的命令是
(删除“更新”以进行全新安装)
vs_Professional.exe update --passive --norestart --wait --productkey $productKey --nocache --noUpdateInstaller --noWeb
使用 collect.exe 有一个 state.errors.json 文件,它指出布局路径上缺少几个包...
注意:我需要在离线布局中提供所有必需的软件包 - 因为某些 PC 没有互联网访问权限(尽管我们要求那些 vs-setup 需要相同......)
我曾尝试联系 Microsoft 支持,但直到现在都没有收到回复。 - 还有其他人遇到这个问题/能够解决它吗?
最佳答案
MSFT Visual Studio 离线布局的更新过程似乎有很多问题,但至少有 1 种方法似乎始终如一:
始终,始终,始终注意您用于创建离线布局的确切参数! (所有软件包,包括附加功能,语言 - 您使用过的确切命令行!
1:创建现有离线布局的副本
正如 Sara Liu 在原始问题的评论中指出的那样,如果您需要能够继续使用旧布局版本进行新安装,您会想要这样做。 (不支持安装更新布局的“旧版本”。)
此外,万一更新过程中出现问题 - 您不会丢失任何东西;-)
2:更新重复的离线布局
vs_Professional.exe --layout <path_to_layout>
完成此操作后,您应该能够从此更新的布局安装新的 VisualStudio 版本,但升级旧版本可能会失败。
为解决此问题,MSFT 为您提供
vs_Professional.exe --verify
vs_Professional.exe --fix
您可以在布局中使用的工具 - 但不要指望它会起作用 - 它从来没有弄清楚我的场景中缺少哪些包。
如果您遵循第 3 点,您还可以升级现有安装。
3:使用与原始布局相同的参数创建一个新布局,并将文件复制到更新后的布局上
我知道这很奇怪 - 但这一直为我提供升级方案所缺少的软件包。只是不要忘记在之后修复您的 ChannelManifest.json。
关于visual-studio - Visual Studio 2017(专业版)离线更新布局缺少包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52428110/