DirectX SDK(2010年6月)安装问题:错误代码S1023


178

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

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

错误代码:S1023

好吧,我尝试关闭所有打开的程序并再次安装,但出现相同的错误。什么是错误代码S1023?我尝试了Googling,但在如何处理它方面发现了许多不同的答案,但我不确定该怎么做。

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

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

10年11月4日18:36:27:dsetup32:安装结束,值为0 =安装成功

谁能帮忙吗?我正在运行Vista(x64)。


我认为在大多数情况下,此错误的原因是您安装了某个程序(例如,游戏),该程序使可再发行版本的版本高于sdk的可再发行版本,从而导致安装失败。我不确定安装失败与否是否重要。
Max DeLiso 2011年

没有足够的答复,但由于这里没有任何提及:请确保右键单击并在安装程序上选择“以管理员身份运行”。
哈拉德·玛森2014年

2
似乎没有人提到这一点,但是您可以忽略该消息。已安装SDK,并设置了环境变量(Win10,2010年6月SDK)
FrozenKiwi 2015年

Answers:


271

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

检查您的临时文件夹(C:\ Users \\ AppData \ Local \ Temp),查找名为的最新文件

Microsoft Visual C ++ 2010 x64可再发行组件Setup_20110608_xxx.html ##

并检查您是否有以下错误

安装阻止程序:

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

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

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

Microsoft Visual C ++ 2010 x86 / x64可再发行-10.0。(数量超过30319)

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


5
只是以为我会发帖,这是我的确切问题,感谢分享。OP确实应该将此标记为解决方案!
乔治

3
知道为什么较新的可再发行组件与安装冲突吗?安装后可以重新安装它们吗?还是会引起麻烦?
2012年

7
如果您自定义安装,则可以避免安装可再发行组件。因此,在安装SDK时,可以保留较新的版本。或者,您可以按照建议的方式将其卸载,然后再重新安装。
Fibericon

3
删除可再发行产品是否有任何风险?
亚瑟·玛穆玛尼

4
@Fibericon仅供参考,我似乎无法取消选择安装DX可再发行组件的选项。我会尝试另一种方法。不过,感谢您的建议!
Vaillancourt 2012年

83

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

  1. 从系统中删除Visual C ++ 2010可再发行组件程序包版本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可再发行组件包版本10.0.40219(Service Pack 1)。在x64系统上,应同时安装x86和x64版本的C ++ REDIST。确保安装了最新版本,这是具有安全修复程序的KB 2565063。

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

File Checksum Integrity Verifier:当然,这将假定您实际上具有DirectX SDK安装程序包的完整副本。验证它运行的最佳方法

fciv -sha1 DXSDK_Jun10.exe

并确认你得到了

8fe98c00fde0f524760bb9021f438bd7d9304a69 dxsdk_jun10.exe

我已经在答案中找到了文章的链接,@ midspace
gregoltsov

谢谢格雷戈里。那天我的浏览器(IE)一定让我感到悲伤,因为我完全不记得在您的帖子中看到任何链接(没有彩色文本)。今天使用Safari,我可以看到所有的em。:/
Midspace

2
只是做第一个对我有帮助。.您的答案是,不要接受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(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可再发行组件包版本10.0.40219(Service Pack 1)。在x64系统上,应同时安装x86和x64版本的C ++ REDIST。确保安装了最新版本,这是具有安全修复程序的KB2565063。

Windows SDK:Windows SDK 7.1具有与KB 2717426中所述完全相同的问题。


到目前为止,这是最简单的解决方案。我喜欢您添加Msiexec命令的方式,为我省去了很多麻烦。最终删除了更新版本,安装非常顺利。找到需要它们的应用程序后,我会考虑重新添加它们。
亚历克斯·萨默斯2014年

2

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

我只是想说,这(我还清空了我的temp文件夹,在Computer-> C:-> Properties-> Disk Cleanup中)使DirectX June 2010 SDK的安装没有失败,我拥有Vista32bit来处理所有问题。谢谢林先生!:)


1

在Win7-64bit计算机上卸载过多后,我也被卡在这里。我不想重新安装操作系统,并且下面的注册表黑客都无法使用任何技巧。我在旧的pchelpforum端口中发现了大多数技巧,但我不得不将其调整为适用于我的64位安装:

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

  1. 开始注册
  2. 转到HKEY_LOCAL_MACHINE-> SOFTWARE-> Wow6432Node-> Microsoft-> DirectX
  3. 如果此DirectX文件夹不存在,请创建它。
  4. 如果已经在此处,请确保其为空。
  5. 现在,在右侧的空白窗口中右键单击并添加此数据(此处可能至少有一个Default字符串值,只需保留它即可):

    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. 利润!


1

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


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文件以查找确切的版本号。

这个对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.