183

我似乎在安装 DirectX SDK 时遇到了一些问题。安装过程中一切似乎都很顺利,但最后我收到了消息:

安装失败。安装可再发行包时遇到错误。请关闭所有打开的程序并再次尝试运行安装程序。如果问题仍然存在,请联系 DirectX 开发人员支持。

错误代码:S1023

好吧,我已经尝试关闭所有打开的程序并再次安装,但我得到了同样的错误。什么是错误代码S1023?我尝试了谷歌搜索,但发现了许多不同的处理方法,我不知道该怎么做。

我尝试在C:\Windows\Logs. 有 2 个日志文件,DirectX.logDirectX_SDK.log. 我没有看到任何明显的“错误”或“失败”迹象。

事实上,DirectX.log 中的最后一行是:

2010 年 11 月 4 日 18:36:27:dsetup32:安装以值 0 结束 = 安装成功

有人可以帮忙吗?我正在运行 Vista (x64)。

4

7 回答 7

276

我遇到了同样的问题,对我来说这是因为 vc2010 redist x86 太新了。

检查您的临时文件夹 (C:\Users\\AppData\Local\Temp) 以获取名为

Microsoft Visual C++ 2010 x64 Redistributable Setup_20110608_xxx.html ##

并检查您是否有以下错误

安装拦截器:

在计算机上检测到更新版本的 Microsoft Visual C++ 2010 Redistributable。

最终结果:安装失败,错误代码:(0x000013EC),“A StopBlock 被击中或系统>要求未得到满足。” (经过时间:0 00:00:00)。

然后转到控制面板>程序和功能并卸载所有

Microsoft Visual C++ 2010 x86/x64 可再发行版 - 10.0.(编号超过 30319)

成功安装 DXSDK 后,只需运行 Windows Update,它就会将可再发行组件更新回最新版本。

于 2011-06-08T19:52:46.770 回答
87

我已经两次遇到同样的问题,我发现的最简单和最简洁的解决方案位于此处(在 MSDN 博客 -> 适用于 Windows 和 DirectX SDK 的游戏中)。但是,以防万一该页面出现故障,方法如下:

  1. 从系统中删除 Visual C++ 2010 Redistributable Package 版本 10.0.40219 (Service Pack 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 年 6 月)

  3. 重新安装 Visual C++ 2010 Redistributable Package 版本 10.0.40219 (Service Pack 1)。在 x64 系统上,您应该安装 C++ REDIST 的 x86 和 x64 版本。请务必安装可用的最新版本,此时它是带有安全修复程序的 KB 2565063。

注意:此问题不影响部署 VS 2005 / VS 2008 CRT REDIST 且不部署 VS 2010 CRT REDIST 的早期版本 DirectX SDK。此问题不会影响 DirectX 最终用户运行时 Web 或独立安装程序,因为这些软件包不部署任何版本的 VC++ CRT。

文件校验和完整性验证器:这当然假设您实际上有一个未损坏的 DirectX SDK 安装包副本。验证它运行的最佳方法

fciv -sha1 DXSDK_Jun10.exe

并验证你得到

8fe98c00fde0f524760bb9021f438bd7d9304a69 dxsdk_jun10.exe
于 2012-02-22T19:51:24.103 回答
22

这是微软的官方回答:http: //blogs.msdn.com/b/chuckw/archive/2011/12/09/known-issue-directx-sdk-june-2010-setup-and-the-s1023-错误.aspx

如果您不想点击,请总结:

  1. 从系统中删除 Visual C++ 2010 Redistributable Package 版本 10.0.40219 (Service Pack 1)(x86 和 x64,如果适用)。这可以通过具有管理员权限的命令行轻松完成:

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

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

  2. 安装 DirectX SDK(2010 年 6 月)

  3. 重新安装 Visual C++ 2010 Redistributable Package 版本 10.0.40219 (Service Pack 1)。在 x64 系统上,您应该安装 C++ REDIST 的 x86 和 x64 版本。请务必安装可用的最新版本,此时是带有安全修复程序的 KB2565063。

Windows SDK:Windows SDK 7.1 与KB 2717426中提到的问题完全相同。

于 2012-10-17T20:46:12.820 回答
2

在添加或删除程序的控制面板中找到 Microsoft Visual C++ 2010 x86/x64 Redistributable – 10.0.xxxxx 如果 xxxxx > 30319 删除它

我只是想说这(我还清空了我的临时文件夹,在 Computer->C:->Properties->Disk Cleanup 中)使 DirectX 2010 年 6 月 SDK 的安装没有失败,我有 Vista32bit 的一切。谢谢林先生!:)

于 2011-12-24T16:09:49.287 回答
1

在我的 Win7-64 位机器上卸载太多之后,我也被困在这里。我不想重新安装操作系统,并且对于下面的这个注册表黑客来说,没有任何技巧可以发挥作用。我在一个旧的 pchelpforum 端口中发现了大部分这个技巧,但我必须将它调整为我的 64 位安装:

(对于 32 位修复,可能会跳过 Wow6432Node 路径)

  1. 开始注册
  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. 利润!
于 2011-09-06T00:09:24.107 回答
1

在添加或删除程序的控制面板中找到 Microsoft Visual C++ 2010 x86/x64 Redistributable – 10.0.xxxxx 如果 xxxxx > 30319 删除它

于 2011-11-05T10:59:00.067 回答
0

我也遇到过这个问题。我在 XP SP3 中运行。

以下网站http://www.docin.com/p-60410380.html# 指出解决方案。不过是简体中文。

我在这里把它的主要思想翻译成英文。

运行注册表;打开HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX 然后必须更改以下两项: 项目1:名称:版本,类型:REG_SZ,该值应该是一个很小的数字,才能使安装成功。

第 2 项:名称:SDKVersion。但在您的机器上,名称可以不同,例如可以是 ManagedDirectXVersion。但类型应该是 REG_SZ。类型:REG_SZ,该值应该是一个很小的数字才能使安装成功。

实际上,您可以参考 DirectX.lgo 文件找到确切的版本号。

这个对我有用。

于 2010-12-08T02:12:06.347 回答