Office Deployment Tool won’t recognise downloaded install files and tries to re-download

microsoft-officemicrosoft-office-2016office-deployment-tool

I'm trying to install Office 2016 (business subscription) using the Office Deployment Tool 2016 (ODT) from a pre-downloaded install package.

Microsoft Support have supplied me with the 1.06GB installation package, which I have downloaded and placed in a directory C:\odt\Office so that the paths to the data files look like this: C:\odt\Office\Data\16.0.4229.1029\stream.x86.x-none.dat and C:\odt\Office\Data\16.0.4229.1029\stream.x86.en-us.dat

I have the ODT setup.exe file in C:\odt\Office and a Configuration.xml file with the appropriate settings, for example:

<Configuration>

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

</Configuration>

I've confirmed that O365BusinessRetail is one of the supported Product IDs for the ODT and that it is the appropriate ID for my subscription. The files Microsoft Support gave me were named Office 365 Business 2016 which appears to correspond.


My problem is, when I run setup.exe as an administrator using a command like this…

enter image description here

…it ignores the existing files and tries to download the bundle again. I'm in a country with poor quality internet connections and the MS downloader is both extremely sensitive to momentary losses in connection and unable to resume downloads that are interrupted: re-downloading the files is not an option.

It gives this error, which indicates that it is trying to download a file. From research it seems the "required file" it vaguely alludes to is the 1.06GB installation bundle, which it is (seemingly needlessly) trying to re-download:

Couldn't install

We're sorry, we can't continue because we weren't able to download a required file. Please make sure you're connected to the internet or connect to a difference network, then try again.

Error Code: 30182-1011 (3)

I've established that it is finding the correct XML file, and that the XML is valid, because if I give a deliberately incorrect config path or deliberately borked XML file it gives a different error code (Error Code: 0-1008 (0)).

The error code I get is also identical to the one I get if I rename the Office folder or add a non-existant path to SourcePath (e.g. <Add OfficeClientEdition="32" Branch="Current" SourcePath="C:\fail" >)

I get the same result if I add the correct SourcePath (SourcePath="C:\odt\Office") as no SourePath, which is the expected result because according to the config XML documentation, with no source path added it looks for "Office" in the directory it's in.

I've also tried adding the version number from the package files to the XML as a fixed version, in case MS support gave me a version that is not the latest and it's rejecting it for that reason. I've also tried switching Branch to Business which I see is an allowed value in the reference. Neither helped. For example:

<Add OfficeClientEdition="32" Branch="Business" Version="16.0.4229.1029" SourcePath="C:\odt\Office">

I've also tried using the setup.exe /packager command, specifying a valid config file and an output folder, in case the package I have needs to be re-packaged somehow, but it has the exact same problem and error.


I figured out how to access log files for ODT. Here are the first few lines of a sample log file. I believe this is the relevant segment, because everything after this (around 350 lines) appears related to trying to get network access and it appears to have already concluded that it needs to run .ExecuteDownloadFile. I believe "Network cost manager" is whatever checks if there's a metered connection in use; and the cab file it refers to (v32_16.0.4229.1029.cab) does exist – C:\odt\Office\Data\v32_16.0.4229.1029.cabit's not clear to me from this log if it succeeds or fails to find this file, which appears to be the crucial step:

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

This is with a version specified in the config file, if there isn't one, line 4 instead ends TryGetVersionDescriptor::HandleStateAction: Getting Cab: v32.ca, which also exists in the same folder. If I specify a version that doesn't exist, everything looks exactly the same as if I specify a version that does exist – which is maybe a clue that it's failing to find the cab file.

However, if I give it a non-existent SourcePath, I get an error further down with no equivalent without a false source path:

failed to open file 'C:\\odt\\fakefolder\\Office\\Data\\v32_16.0.4229.1030.cab

I'm completely stumped, and MS support are struggling to help because I've followed all their standard steps.

How can I find out why ODT might be rejecting or not seeing these pre-downloaded installable files? What ODT is actually doing at any time appears to be completely opaque – until it fails, it just gives an unhelpful orange box that says "We're getting things ready".


If it's relevant, I'm attempting to install on a Windows 8.1 machine.

Best Answer

I FINALLY cracked it with the help of the ODT log files.

Basically, unlike what the docs say, manually setting a SourcePath is mandatory if you want a local/offline install, and the source path should exclude the top level directory name of the install bundle (so should not end with Office unless you've got a folder named Office inside another folder named Office).


My problem was caused by two misleading / out-of-date points in Microsoft's Configuration file reference page, coupled with the complete lack of feedback in the installer UI. Specifically:

  • MS give this as an example of a typical SourcePath entry: C:\Preload\Office - so I had entered my source paths similarly: C:\odt\Office, including "Office", the name of the top level bundle folder. This was causing the installer to fail to find my downloaded files - it should exclude the folder name of the bundle. My source path should have been SourcePath="C:\odt" and Microsoft's example should have been C:\Preload (or, they should have a note saying this only works for paths like C:\Preload\Office\Office\Data\etc...
  • MS say the following:

If you don’t specify SourcePath in configure mode, Setup will look in the current folder for the Office source files. If the Office source files aren’t found in the current folder, Setup will look on Office 365 for them.

Maybe that was true for Office 2013, I don't know, but based on my hours of trial and error, the inverse appears to be true for Office 2016.

When I ran the setup.exe with no SourcePath in the config file, it looked online before checking for a local copy, and began a download instead of using a local copy in the default position in the same directory.

<speculation> I guess such a change would be consistent with Microsoft's changing attitudes to updates, which were roughly "Use the latest version cautiously, it might break things" in 2012 and are roughly "If in doubt, update update update" today?</speculation>


My settings which worked looked like this:

<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>

I don't believe the version number is essential (and I'm not re-installing to find out!); if anyone with similar problems discovers they do need theirs, I took mine from the folder name under Office\Data.


If anyone knows how I can report the issues with the documentation to Microsoft, please drop me a comment.