WUApiLib IUpdateInstaller2 выдает ошибку; Некоторые обновления ОС устанавливают, другие выдают HResult -2145124318

Обновления загружаются с локального сервера, а не из WUS или репозиториев Microsoft. Локальный сервер на основе Linux, хост которогосодержание каждого обновления.

я не используюUpdateDownloader чтобы загрузить с серверов Microsoft, я вручную загружаю содержимое обновления и затем использую.CopyToCache

Эти установлены нормально

Обновление безопасности для Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1) в Windows XP, Server 2003, Vista, Server 2008 x86 (KB2736416)

Обновление безопасности для Microsoft Visual Studio 2010 (KB2542054)

Это не

Обновление безопасности для Microsoft .NET Framework 4 на XP, Server 2003, Vista, Windows 7, Server 2008 x86 (KB2840628)

Обновление для Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1) в Windows XP, Server 2003, Vista и Server 2008 x86 (KB2836940)

Как работает мой процесс

Я получаю это для установки с локального сервера, который я использую, чтобы загрузить весь загружаемый контент для обновления. (Текст цитаты выше KB2840628 приведен ниже)

{
  "app_uris": [
    {
      "file_name": "msipatchregfix-x86_94a84b80b8b45a1ac53a0e5d085513da0f099655.exe",
      "file_uri": "https://192.168.5.108/packages/d13c13c81f94fbb48f39c817a71ff239a31773d3a0e821a968dc42a913892841/msipatchregfix-x86_94a84b80b8b45a1ac53a0e5d085513da0f099655.exe",
      "file_size": 130600
    },
    {
      "file_name": "ndp40-kb2840628-v2-x86_891d50ff3c1322db3fb0fde222ebb0aaa5260272.exe",
      "file_uri": "https://192.168.5.108/packages/d13c13c81f94fbb48f39c817a71ff239a31773d3a0e821a968dc42a913892841/ndp40-kb2840628-v2-x86_891d50ff3c1322db3fb0fde222ebb0aaa5260272.exe",
      "file_size": 13294216
    }
  ],
  "app_id": "d13c13c81f94fbb48f39c817a71ff239a31773d3a0e821a968dc42a913892841",
  "app_name": "Security Update for Microsoft .NET Framework 4 on XP, Server 2003, Vista, Windows 7, Server 2008 x86 (KB2840628)"
}

При этом проблема заключается в том, что некоторые обновления устанавливаются совершенно нормально, но некоторые обновления (я считаю, что те, которые имеют более одногоbundle-updates) неэто проходит, это сводит меня с ума!

Я сначала скачиваю каждыйUri а затем загрузить их в обновление с.CopyToCache

  var collection = new UpdateCollection();
  IList updateFiles = Directory.GetFiles(updateFolder);
  var fileCollection = new StringCollection();

  try
  {
       foreach (var file in updateFiles)
               fileCollection.Add(file);

       //Error happens here on certain updates. Not all.
       ((IUpdate2)update.BundledUpdates[0]).CopyToCache(fileCollection);
       collection.Add(update);
       return collection;
  }
  catch (Exception e)
  {
     return null;
  }

После этого возвращенная коллекция проходит через мойWindowsUpdateInstaller Метод показан ниже:

IUpdateSession Session = new UpdateSession();
var updatesToInstall = //THIS GETS THE RETURN FROM THE ABOVE CODE...
var installer        = (IUpdateInstaller2)Session.CreateUpdateInstaller();

installer.ForceQuiet         = true;
installer.AllowSourcePrompts = false;
installer.Updates            = updatesToInstall;

foreach (IUpdate updateNode in installer.Updates)
{
   updateNode.AcceptEula();
}

//FAILS HERE WITH "-2145124318, Result code: orcFailed",
var installationRes = installer.Install(); 
var installResult   = installationRes.GetUpdateResult(0);

Обновление устанавливается очень хорошо, если я вручную дважды щелкаю по исполняемому файлу и устанавливаю его вручную без использования кода.

Ответы на вопрос(1)

Ваш ответ на вопрос