Office 部署工具无法识别下载的安装文件并尝试重新下载

use*_*ca8 6 microsoft-office microsoft-office-2016 office-deployment-tool

我正在尝试使用 Office 部署工具 2016 (ODT) 从预下载的安装包安装 Office 2016(商业订阅)。

微软支持已经给我提供了与1.06GB安装包,我已经下载并放置在一个目录下C:\odt\Office,这样的数据文件的路径是这样的:C:\odt\Office\Data\16.0.4229.1029\stream.x86.x-none.datC:\odt\Office\Data\16.0.4229.1029\stream.x86.en-us.dat

我有 ODT setup.exe 文件C:\odt\Office和具有适当设置的 Configuration.xml 文件,例如:

<Configuration>

  <Add OfficeClientEdition="32" Branch="Current">
    <Product ID="O365BusinessRetail">
      <Language ID="en-us" />
    </Product>
  </Add>

</Configuration>
Run Code Online (Sandbox Code Playgroud)

我已经确认这O365BusinessRetail是 ODT 支持的产品 ID 之一,并且它是我订阅的适当 ID。微软支持给我的文件被命名为Office 365 Business 2016似乎对应。


我的问题是,当我使用这样的命令以管理员身份运行 setup.exe 时...

在此处输入图片说明

...它忽略现有文件并尝试再次下载该包。我所在的国家/地区的互联网连接质量很差,而且 MS 下载器对暂时的连接中断非常敏感,并且无法恢复中断的下载:重新下载文件不是一种选择。

它给出了这个错误,这表明它正在尝试下载一个文件。从研究来看,它模糊地暗示的“必需文件”似乎是 1.06GB 安装包,它(似乎是不必要地)试图重新下载:

无法安装

很抱歉,我们无法继续,因为我们无法下载所需的文件。请确保您已连接到 Internet 或连接到其他网络,然后重试。

错误代码:30182-1011 (3)

我已经确定它正在找到正确的 XML 文件,并且 XML 是有效的,因为如果我故意提供不正确的配置路径或故意破坏 XML 文件,它会给出不同的错误代码(错误代码:0-1008 (0) )。

如果我重命名Office文件夹或向SourcePath(例如<Add OfficeClientEdition="32" Branch="Current" SourcePath="C:\fail" >)添加不存在的路径,我得到的错误代码也与我得到的错误代码相同

如果我将正确的 SourcePath ( SourcePath="C:\odt\Office")添加为没有 SourePath,我会得到相同的结果,这是预期的结果,因为根据配置 XML 文档,没有添加源路径,它会在它所在的目录中查找“Office”。

我还尝试将包文件中的版本号作为固定版本添加到 XML 中,以防 MS 支持给我的版本不是最新的并且因此拒绝它。我也试过切换BranchBusiness我看到参考中允许的值。都没有帮助。例如:

<Add OfficeClientEdition="32" Branch="Business" Version="16.0.4229.1029" SourcePath="C:\odt\Office">
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用该setup.exe /packager命令,指定一个有效的配置文件和一个输出文件夹,以防我的包需要以某种方式重新打包,但它有完全相同的问题和错误。


我想出了如何访问 ODT 的日志文件。以下是示例日志文件的前几行。我相信这是相关的部分,因为此后的所有内容(大约 350 行)似乎都与尝试获得网络访问权限有关,并且似乎已经得出结论,它需要运行.ExecuteDownloadFile. 我相信“网络成本管理器”是检查是否有计量连接正在使用的任何东西;而cab它是指文件(v32_16.0.4229.1029.cab)确实存在- C:\odt\Office\Data\v32_16.0.4229.1029.cab-它不是从这个日志,如果它成功或失败中找到此文件清楚地知道,这似乎是一个重要的步骤:

Timestamp   Process TID Area    Category    EventID Level   Message Correlation
11/20/2015 13:25:15.407 SETUP (0xbdc)   0xad8       Click-To-Run    aoh85   Medium  AdminConfigure::HandleStateAction: Configuring an install/crosssell scenario.   
11/20/2015 13:25:15.422 SETUP (0xbdc)   0xad8       Click-To-Run    aqdco   Monitorable TryCheckNetworkCost::HandleStateAction: Failed to initialize NetworkCostManager for http://officecdn.microsoft.com/pr/492350f6-3a01-4f97-b9c0-c7c6ddf67d60. Assuming low cost and proceeding.   
11/20/2015 13:25:15.422 SETUP (0xbdc)   0xad8       Click-To-Run    aon8k   Medium  CabManager::DetermineCabName: Type:0, Platform:x86, Version:16.0.4229.1029, Culture: -> v32_16.0.4229.1029.cab  
11/20/2015 13:25:15.422 SETUP (0xbdc)   0xad8       Click-To-Run    aoh9i   Medium  TryGetVersionDescriptor::HandleStateAction: Getting Cab: v32_16.0.4229.1029.cab 
11/20/2015 13:25:15.422 SETUP (0xbdc)   0xad8       Scope   a6pk5   Medium  {"ScopeAction": "Start", "ScopeName": "ClickToRun.TransportRetry.ExecuteDownloadFile", "ScopeInstance": 3, "ScopeParentInstance": 0}    F6A9F7B0-FE40-4FD4-A41A-CC60C5768E09
11/20/2015 13:25:15.438 SETUP (0xbdc)   0xad8       Identity Http Client    axieo   Medium  [CWinHttpHelperBase] AutomaticProxyConfiguration {"Message": "InitSession detected proxy auto detect."} F6A9F7B0-FE40-4FD4-A41A-CC60C5768E09
11/20/2015 13:25:15.469 SETUP (0xbdc)   0xad8       Identity Http Client    a9ido   Medium  [HttpUtil] IsKnownProxyError {"SH_ErrorCode": 12007, "Message": "Detected a proxy failure"} F6A9F7B0-FE40-4FD4-A41A-CC60C5768E09
Run Code Online (Sandbox Code Playgroud)

这是在配置文件中指定的版本,如果没有,则第 4 行结束TryGetVersionDescriptor::HandleStateAction: Getting Cab: v32.ca,它也存在于同一文件夹中。如果我指定一个不存在的版本,那么一切看起来都与我指定一个确实存在的版本完全相同——这可能是它无法找到cab文件的线索。

但是,如果我给它一个 non-existent SourcePath,我会得到一个错误,没有等价的没有错误的源路径:

failed to open file 'C:\\odt\\fakefolder\\Office\\Data\\v32_16.0.4229.1030.cab
Run Code Online (Sandbox Code Playgroud)

我完全被难住了,MS 支持正在努力提供帮助,因为我遵循了他们的所有标准步骤。

如何找出 ODT 可能拒绝或看不到这些预下载的可安装文件的原因?ODT 在任何时候实际上在做什么似乎是完全不透明的 - 在它失败之前,它只会给出一个无用的橙色框,上面写着“我们正在准备就绪”。


如果相关,我正在尝试在 Windows 8.1 机器上安装。

use*_*ca8 9

我终于在ODT 日志文件的帮助下破解了它。

基本上,不像文档说什么,手动设置SourcePath强制性的,如果你想有一个本地/离线安装,和源路径应排除的安装包(所以要的顶级目录名称结尾Office,除非你有一个文件夹名为 Office 的另一个文件夹中名为 Office)。


我的问题是由Microsoft 的配置文件参考页面中的两个误导/过时的点引起的,再加上安装程序 UI 中完全缺乏反馈。具体来说:

  • MS 将此作为典型 SourcePath 条目的示例:C:\Preload\Office- 所以我类似地输入了我的源路径:C:\odt\Office,包括“Office”,顶级包文件夹的名称。这导致安装程序无法找到我下载的文件 - 它应该排除包的文件夹名称。我的源路径应该是SourcePath="C:\odt",微软的例子应该是C:\Preload(或者,他们应该有一个注释说这仅适用于像这样的路径C:\Preload\Office\Office\Data\etc...
  • MS 说如下:

如果在配置模式下未指定 SourcePath,安装程序将在当前文件夹中查找 Office 源文件。如果在当前文件夹中找不到 Office 源文件,安装程序将在 Office 365 上查找它们。

也许 Office 2013 是这样,我不知道,但根据我的反复试验时间,Office 2016 似乎正好相反。

当我SourcePath在配置文件中使用 no 运行 setup.exe 时,它在检查本地副本之前先在线查看,并开始下载而不是在同一目录中的默认位置使用本地副本。

<speculation> 我想这样的变化会符合微软对更新的态度转变,在2012年大致是“谨慎使用最新版本,它可能会破坏东西”,而今天大致是“如果有疑问,更新更新更新”?</speculation>


我的工作设置如下所示:

<Configuration>

  <Add OfficeClientEdition="32" Branch="Current" Version="16.0.4229.1029" SourcePath="C:\odt">
    <Product ID="O365BusinessRetail">
      <Language ID="en-us" />
    </Product>
  </Add>

  <Logging Level="Standard" Path="C:\odt\log" />

</Configuration>
Run Code Online (Sandbox Code Playgroud)

我不相信版本号是必不可少的(而且我不会重新安装以找出答案!);如果有类似问题的人发现他们确实需要他们的,我会从Office\Data.


如果有人知道我如何向 Microsoft 报告文档问题,请给我留言。