代码之家  ›  专栏  ›  技术社区  ›  mwallner

Visual Studio 2017(专业版)脱机更新布局缺少软件包

  •  2
  • mwallner  · 技术社区  · 7 年前

    不久前,我为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。有一种状态。错误。json文件,声明布局路径上缺少几个包。。。

    注:我需要在离线布局中提供所有必需的软件包——因为有些电脑没有互联网接入(尽管我们要求这些vs设置必须相同……)

    我曾试图寻求微软的支持,但到目前为止还没有得到微软的回复。-还有谁有这个问题/能够解决吗?

    0 回复  |  直到 7 年前
        1
  •  1
  •   mwallner    6 年前

    MSFT Visual Studio脱机布局的更新过程似乎有很多问题,但至少有一种方法似乎可以始终如一地工作:

    总是,总是,总是注意你用来创建脱机布局的确切参数!(所有软件包,包括附加程序、语言——您使用的确切命令行!

    1:创建现有脱机布局的副本

    正如Sara Liu在原始问题的评论中指出的那样,如果你需要在新安装中继续使用旧的布局版本,你会希望这样做。(不支持安装更新布局的“旧版本”。)

    此外,如果在更新过程中有什么东西坏了-你不会丢失任何东西;-)

    2:更新复制的脱机布局

    vs_Professional.exe --layout <path_to_layout> 
    

    完成此操作后,您应该能够从更新的布局安装新的VisualStudio版本,但升级旧版本可能会失败。

    为了解决这个问题,MSFT提供了

    vs_Professional.exe --verify
    vs_Professional.exe --fix
    

    你可以在布局中使用工具——但不要指望它会起作用——它从来没有发现我的场景中缺少了哪些包。

    如果遵循第3点,还可以升级现有安装。

    3:使用与原始布局相同的参数创建新布局,并将文件复制到更新的布局上

    我知道这很奇怪,但这一直给我提供了升级场景中缺少的软件包。只是别忘了修复你的通道清单。之后。