DirectX SDK (июнь 2010 г.) Проблемы с установкой: код ошибки S1023

178

У меня возникли проблемы с установкой DirectX SDK. Кажется, что все идет хорошо во время установки, но в конце я получаю сообщение:

Установка не удалась. При установке распространяемых пакетов возникли ошибки. Пожалуйста, закройте все открытые программы и попробуйте снова запустить программу установки. Если проблемы сохраняются, обратитесь в службу поддержки DirectX Developer.

Код ошибки: S1023

Ну, я попытался закрыть все открытые программы и установить снова, но я получаю ту же ошибку. Что такое код ошибки S1023? Я попробовал Googling , но нашел много разных ответов о том, как с этим бороться, и я не уверен, что делать.

Я попытался посмотреть в лог-файлы в C:\Windows\Logs. Есть 2 файла журнала DirectX.logи DirectX_SDK.log. Я не вижу каких-либо заметных признаков "ошибки" или "неудачи" любого рода.

Фактически, самая последняя строка в DirectX.log:

04.11.10 18:36:27: dsetup32: установка завершилась со значением 0 = установка прошла успешно

Может ли кто-нибудь помочь, пожалуйста? Я использую Vista (x64).

Джеймс
источник
Я полагаю, что в большинстве случаев причиной этой ошибки является то, что вы установили программу (например, игру), которая подняла распространяемую версию выше, чем распространяемая версия SDK, что привело к сбою установки. Я не уверен, имеет ли значение, что установка не удалась или нет.
Макс Делисо
Недостаточно повторений, чтобы ответить, но поскольку это нигде не упомянуто здесь: обязательно щелкните правой кнопкой мыши и выберите «Запуск от имени администратора» в установщике.
Харальд Маассен
2
Кажется, никто не упомянул об этом, но вы можете просто проигнорировать сообщение. SDK установлен и установлен env vars (Win10, июнь 2010 SDK)
FrozenKiwi

Ответы:

271

У меня была та же проблема, и для меня это было потому, что vc2010 redist x86 был слишком свежим.

Проверьте вашу временную папку (C: \ Users \\ AppData \ Local \ Temp) на наличие самого последнего файла с именем

Microsoft Visual C ++ 2010 x64 распространяемый Setup_20110608_xxx.html ##

и проверьте, есть ли у вас следующая ошибка

Монтажные блокираторы:

На компьютере обнаружена более новая версия распространяемого пакета Microsoft Visual C ++ 2010.

Конечный результат: установка не удалась с кодом ошибки: (0x000013EC), «сбит стоп-блок или не выполнено требование системы>». (Истекшее время: 0 00:00:00).

затем перейдите в Панель управления> Программа и компоненты и удалите все

Microsoft Visual C ++ 2010 x86 / x64 распространяемый - 10.0 (число более 30319)

После успешной установки DXSDK просто запустите Центр обновления Windows, и он обновит распространяемые файлы до последней версии.

Уго Робейн
источник
5
Просто думал, что я опубликую, и это была моя проблема, спасибо, что поделились. ОП действительно должен отметить это как решение!
Джордж
3
Есть идеи, почему новые распространяемые файлы сталкиваются с установкой? Можно ли их переустановить после установки? Или они вызовут проблемы?
Magnattic
7
Если вы настраиваете установку, вы можете отказаться от установки распространяемого. Таким образом, вы можете сохранить более новый при установке SDK. Кроме того, вы можете просто удалить его, как предложено, и переустановить его после.
Fibericon
3
Есть ли риски в удалении распространяемых?
Артур Маму-Мани
4
@ Fibericon FYI Кажется, я не могу отменить выбор для установки распространяемого DX. Я попробую наоборот. Спасибо за предложение, хотя!
Vaillancourt
83

У меня уже была одна и та же проблема дважды, и самое простое и лаконичное решение, которое я нашел, находится здесь (в блогах MSDN -> Игры для Windows и DirectX SDK). Однако на тот случай, если эта страница закроется, вот метод:

  1. Удалите распространяемый пакет Visual C ++ 2010 версии 10.0.40219 (с пакетом обновления 1) из системы (как x86, так и x64, если применимо). Это легко сделать из командной строки с правами администратора:

    MsiExec.exe /passive /X{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
    MsiExec.exe /passive /X{1D8E6291-B0D5-35EC-8441-6616F567A0F7}
    
  2. Установите DirectX SDK (июнь 2010 г.)

  3. Переустановите распространяемый пакет Visual C ++ 2010 версии 10.0.40219 (пакет обновления 1). В системе x64 вы должны установить как x86, так и x64 версии C ++ REDIST. Обязательно установите самую последнюю доступную версию , которая на данный момент представляет собой KB 2565063 с исправлением безопасности.

Примечание. Эта проблема не затрагивает более раннюю версию DirectX SDK, в которой развернут CRT REDIST VS 2005 / VS 2008 и не внедряется CRT REDIST VS 2010. Эта проблема не затрагивает веб-среду DirectX End-User Runtime или автономный установщик, поскольку эти пакеты не развертывают какую-либо версию CRT VC ++.

Проверка целостности контрольной суммы файла : это, конечно, предполагает, что у вас действительно есть поврежденная копия пакета установки DirectX SDK. Лучший способ проверить это это запустить

fciv -sha1 DXSDK_Jun10.exe

и убедитесь, что вы получите

8fe98c00fde0f524760bb9021f438bd7d9304a69 dxsdk_jun10.exe
gregoltsov
источник
У меня уже есть ссылка на статью в моем ответе, @midspace
gregoltsov
Спасибо Грегори. Мой браузер (IE), должно быть, приносил мне горе в тот день, так как я не помню, чтобы какие-либо ссылки (без цветного текста) вообще были в вашем сообщении. Использование Safari сегодня, и я могу видеть все из них. : /
Мидпейс
2
Просто выполнение номера 1 помогает мне .. Ваш ответ - не принимать oui oui
Jimmyt1988
22

Вот официальный ответ от Microsoft: http://blogs.msdn.com/b/chuckw/archive/2011/12/09/known-issue-directx-sdk-june-2010-setup-and-the-s1023- Error.aspx

Резюме, если вы не хотите нажимать:

  1. Удалите распространяемый пакет Visual C ++ 2010 версии 10.0.40219 (с пакетом обновления 1) из системы (как x86, так и x64, если применимо). Это легко сделать из командной строки с правами администратора:

    MsiExec.exe / passive / X {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}

    MsiExec.exe / passive / X {1D8E6291-B0D5-35EC-8441-6616F567A0F7}

  2. Установите DirectX SDK (июнь 2010 г.)

  3. Переустановите распространяемый пакет Visual C ++ 2010 версии 10.0.40219 (пакет обновления 1). В системе x64 вы должны установить как x86, так и x64 версии C ++ REDIST. Обязательно установите самую последнюю доступную версию, которая на данный момент является KB2565063 с исправлением безопасности.

Windows SDK: Windows SDK 7.1 имеет точно такую ​​же проблему, как отмечено в KB 2717426 .

деревенщина
источник
Это, безусловно, было самым простым решением. Мне нравится, как вы добавили команды Msiexec, избавили меня от многих хлопот. Закончилось удаление обновленных версий, и установка прошла отлично. Я подумаю о их повторном добавлении, как только найду приложение, которое им требовалось.
Алекс Саммерс
2

Найдите Microsoft Visual C ++ 2010 x86 / x64 Redistributable - 10.0.xxxxx на панели управления установкой или удалением программ, если xxxxx> 30319 переименовывает его

Я просто хотел сказать, что это (я также опустошил свою временную папку в Computer-> C: -> Properties-> Disk Cleanup) сделало установку DirectX June 2010 SDK без сбоев, у меня Vista32bit для всех важных задач. Спасибо, мистер Лин! :)

Начинающий программист
источник
1

После удаления слишком большого количества файлов на моей машине с Win7-64bit я тоже застрял здесь. Я не хотел переустанавливать операционную систему, и ни один из приемов не сработал, ожидайте этого взлома реестра ниже. Большую часть этого трюка я нашел в старом порте pchelpforum, но мне пришлось адаптировать его к моей 64-битной установке:

(Для 32-разрядного восстановления, вероятно, пропустите путь Wow6432Node)

  1. Начать regedit
  2. Перейдите в HKEY_LOCAL_MACHINE-> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ-> Wow6432Node-> Microsoft-> ​​DirectX
  3. Если эта папка DirectX не существует, создайте ее.
  4. Если уже здесь, убедитесь, что он пуст.
  5. Теперь щелкните правой кнопкой мыши в пустом окне справа и добавьте эти данные (вероятно, здесь будет хотя бы строковое значение по умолчанию, просто оставьте его):

    New->Binary Value
    Name: InstalledVersion
    Type: REG_BINARY
    Data: 00 00 00 09 00 00 00 00
    
    New->DWORD (32-bit) Value
    Name: InstallMDX
    Type: REG_DWORD
    Data: 0x00000001
    
    New->String Value
    Name: SDKVersion
    Type: REG_SZ
    Data: 9.26.1590.0
    
    New->String Value
    Name: Version
    Type: REG_SZ
    Data: 4.09.00.0904
    
  6. Переустановите, используя последний установщик DXSDK. Опция только во время выполнения может работать, но я не проверял это.

  7. Прибыль!
MattiasF
источник
Решение на сайте Microsoft: answers.microsoft.com/en-us/windows/forum/…
Der_Meister
1

Найдите Microsoft Visual C ++ 2010 x86 / x64 Redistributable - 10.0.xxxxx на панели управления установкой или удалением программ, если xxxxx> 30319 переименовывает его

Mr.Lyn
источник
0

Я тоже сталкивался с этой проблемой. И я работаю в XP SP3.

Следующий веб-сайт http://www.docin.com/p-60410380.html# указывает на решение. Но это упрощенный китайский.

Я перевел его основную идею на английский здесь.

запустить regedit; Откройте HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ DirectX. Затем необходимо изменить следующие два элемента: Элемент 1: Имя: Версия, Тип: REG_SZ, Значение должно быть довольно небольшим числом, чтобы установка прошла успешно.

Пункт 2: Название: SDKVersion. Но на вашем компьютере имя может быть другим, например, это может быть ManagedDirectXVersion. Но тип должен быть REG_SZ. Тип: REG_SZ, значение должно быть довольно мало, чтобы сделать установку успешной.

Фактически, вы можете обратиться к файлу DirectX.lgo, чтобы найти точный номер версии.

Меня устраивает.

Yuncy
источник