![Office 部署工具无法识别已下载的安装文件并尝试重新下载](https://linux22.com/image/1474147/Office%20%E9%83%A8%E7%BD%B2%E5%B7%A5%E5%85%B7%E6%97%A0%E6%B3%95%E8%AF%86%E5%88%AB%E5%B7%B2%E4%B8%8B%E8%BD%BD%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%87%E4%BB%B6%E5%B9%B6%E5%B0%9D%E8%AF%95%E9%87%8D%E6%96%B0%E4%B8%8B%E8%BD%BD.png)
我正在尝试使用预先下载的安装包中的 Office 部署工具 2016 (ODT) 安装 Office 2016(商业订阅)。
Microsoft 支持部门为我提供了 1.06GB 的安装包,我已下载并放置在一个目录中C:\odt\Office
,以便数据文件的路径如下所示C:\odt\Office\Data\16.0.4229.1029\stream.x86.x-none.dat
:C:\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>
我已经确认了O365BusinessRetail
是 ODT 支持的产品 ID 之一并且它是我订阅的适当 ID。Microsoft 支持人员给我的文件的名称Office 365 Business 2016
似乎与之相对应。
我的问题是,当我使用如下命令以管理员身份运行 setup.exe 时......
...它忽略现有文件并尝试再次下载该包。我所在的国家/地区的网络连接质量较差,MS 下载程序对于瞬间的连接丢失极其敏感,并且无法恢复中断的下载:无法重新下载文件。
它给出了此错误,表明它正在尝试下载文件。根据研究,它隐约提到的“必需文件”似乎是 1.06GB 的安装包,它正在(似乎不必要地)尝试重新下载:
无法安装
抱歉,我们无法继续,因为我们无法下载所需文件。请确保您已连接到互联网或连接到其他网络,然后重试。
错误代码: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 支持人员给我的版本不是最新版本,并因此拒绝它。我还尝试切换Branch
到Business
我看到的引用中允许的值。两者都没有帮助。例如:
<Add OfficeClientEdition="32" Branch="Business" Version="16.0.4229.1029" SourcePath="C:\odt\Office">
我也尝试使用该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
这是在配置文件中指定的版本,如果没有,则第 4 行结束TryGetVersionDescriptor::HandleStateAction: Getting Cab: v32.ca
,它也存在于同一文件夹中。如果我指定不存在的版本,则所有内容看起来与我指定确实存在的版本完全相同 - 这可能是无法找到该cab
文件的线索。
但是,如果我给它一个不存在的SourcePath
,我就会得到一个错误,没有等效的,也没有错误的源路径:
failed to open file 'C:\\odt\\fakefolder\\Office\\Data\\v32_16.0.4229.1030.cab
我完全被难住了,而且 MS 支持人员正在尽力提供帮助,因为我已经遵循了他们的所有标准步骤。
我如何才能找出为什么 ODT 可能会拒绝或看不到这些预先下载的可安装文件?ODT 在任何时候实际执行的操作似乎完全不透明 - 直到它失败,它只会显示一个无用的橙色框,上面写着“我们正在准备”。
如果相关的话,我正在尝试在 Windows 8.1 机器上安装。
答案1
我终于在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 来说,情况似乎正好相反。
当我运行配置文件中没有的 setup.exe 时SourcePath
,它会在检查本地副本之前先在线查找,然后开始下载,而不是使用同一目录中默认位置的本地副本。
<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>
我不认为版本号是必需的(而且我不会重新安装来查找!);如果遇到类似问题的人发现他们确实需要他们的版本号,我会从 下的文件夹名称中获取我的版本号Office\Data
。
如果有人知道如何向 Microsoft 报告文档问题,请给我留言。
答案2
如果您将该文件夹与配置 XML 文件一起放入,则运行setup.exe
:C:\ODT
setup.exe /download configuration.xml
它将创建一个“Office”文件夹C:\ODT
,所有源文件都将位于其中。然后您只需运行:
setup.exe /configure configuration.xml
并且它应该可以正常工作。您无需在 XML 文件中指定源。
问题在于,您将setup.exe
和configuration.xml
文件放在了 Office 文件夹中太深的位置。它们需要放在 ODT 文件夹中,这样就不需要配置源了。如果 Microsoft 尚未向您提供这些文件,那么当您运行上述下载开关时,这一点就会非常明显。
答案3
我刚刚遇到这个问题。查看日志文件,我正在寻找 c:\odt\Office\Data\v32.cab。当我去查看时,文件不存在,而是 v32_16.0.6965.2058.cab。我将其重命名为 v32.cab,然后重新运行安装。安装过程没有任何问题。
答案4
我进行了离线安装,事实上,直到今天,您仍然需要删除 configuration.xml 文件对“Office”文件夹的引用,否则您会收到上述错误。