Visual Studio 2017(专业版)离线更新版面缺包
Visual Studio 2017 (Professional) Offline Update Layout Is Missing Packages
不久前,我为 VS2017 Professional(版本 15.5)创建了一个离线安装布局 - 这是工作中几个开发主机的基础。
现在我们要升级到 VS2017 - 版本 15.8 - 所以我创建了现有布局的 1:1 副本和 运行
vs_Professional.exe --layout <path_to_layout>
which 运行 一会儿又更新了?all?布局中的包。
使用此更新后的布局进行全新安装效果很好,但是 - 当使用此布局更新其中一台安装了 15.5 版的主机时,更新过程失败并显示退出代码“1”。
旁注:VS 实际上声明它现在是 15.8.4 - 但它退出时出现错误代码 .. 所以 ..?
我用于 install/update 的命令是
(删除 "update" 以进行全新安装)
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:创建现有离线布局的副本
如 Sara Liu 在原始问题的评论中指出的那样,如果您需要能够继续使用旧布局版本进行新安装,则您会想要这样做。 (不支持安装更新布局的 'older version'。)
此外,如果更新过程中出现问题 - 您不会丢失任何东西 ;-)
2:更新复制的离线布局
vs_Professional.exe --layout <path_to_layout>
完成此操作后,您应该能够从此更新的布局安装新的 VisualStudio 版本,但升级旧版本可能会失败。
为解决此问题,MSFT 为您提供
vs_Professional.exe --verify
vs_Professional.exe --fix
您可以在布局中使用的工具 - 但不要指望它会起作用 - 它从来没有弄清楚我的场景中缺少哪些包。
如果您遵循第 3 点,您还可以升级现有安装。
3: 使用与原始布局相同的参数创建一个新布局,并将文件复制到更新后的布局上
我知道这很奇怪 - 但这一直给我升级方案缺少的包。只是别忘了之后修复你的 ChannelManifest.json。
不久前,我为 VS2017 Professional(版本 15.5)创建了一个离线安装布局 - 这是工作中几个开发主机的基础。
现在我们要升级到 VS2017 - 版本 15.8 - 所以我创建了现有布局的 1:1 副本和 运行
vs_Professional.exe --layout <path_to_layout>
which 运行 一会儿又更新了?all?布局中的包。
使用此更新后的布局进行全新安装效果很好,但是 - 当使用此布局更新其中一台安装了 15.5 版的主机时,更新过程失败并显示退出代码“1”。
旁注:VS 实际上声明它现在是 15.8.4 - 但它退出时出现错误代码 .. 所以 ..?
我用于 install/update 的命令是 (删除 "update" 以进行全新安装)
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:创建现有离线布局的副本
如 Sara Liu 在原始问题的评论中指出的那样,如果您需要能够继续使用旧布局版本进行新安装,则您会想要这样做。 (不支持安装更新布局的 'older version'。)
此外,如果更新过程中出现问题 - 您不会丢失任何东西 ;-)
2:更新复制的离线布局
vs_Professional.exe --layout <path_to_layout>
完成此操作后,您应该能够从此更新的布局安装新的 VisualStudio 版本,但升级旧版本可能会失败。
为解决此问题,MSFT 为您提供
vs_Professional.exe --verify
vs_Professional.exe --fix
您可以在布局中使用的工具 - 但不要指望它会起作用 - 它从来没有弄清楚我的场景中缺少哪些包。
如果您遵循第 3 点,您还可以升级现有安装。
3: 使用与原始布局相同的参数创建一个新布局,并将文件复制到更新后的布局上
我知道这很奇怪 - 但这一直给我升级方案缺少的包。只是别忘了之后修复你的 ChannelManifest.json。