Windows 8 SDK 中保留了哪些 DirectX 组件?

What DirectX components are retained in Windows 8 SDK?

背景:我在 Visual Studio 2013 年开发并针对 .Net 4.5,运行ning 在 Windows 7。我'我一直在尝试在 WPF 上下文中使 DirectX 达到 运行,并参考了 SharpDX,以及使用它的示例程序:http://sharpdxwpf.codeplex.com/SourceControl/latest#SharpDX.WPF.sln

当我尝试构建它时出现错误,因为缺少 'd3dcompiler_43.dll'。我通过显式下载 DirectX 最终用户运行时 (https://www.microsoft.com/en-us/download/details.aspx?id=8109)

解决了这个问题

我的问题:根据 MSDN DirectX 已折叠到 Windows 8 SDK (https://blogs.msdn.microsoft.com/chuckw/2012/03/22/where-is-the-directx-sdk/),并且根据同一文档,它是包含在 Visual Studio 2012 年。

因为我使用的是 VS2013(专业版),所以我认为它也包含在其中。那么,为什么我必须明确下载 DirectX 最终用户包才能获取我的 DLL?还是 Windows 8 SDK 不包含遗留 DLL? (如果是这样,遗留程序应该如何在 Windows 8 和 10 中工作?)有人可以用实际的术语向我解释 DirectX 路线图吗?

关于 D3DCompile 的故事被讲述 here

简而言之,使用 SharpDX 软件包构建不需要安装旧版 DirectX SDK,但您确实需要它部署的旧的可选 side-by-side DLL。您可以通过安装 DXSETUP.

获得旧的 #43 版本

See Not So DirectSetup for all the details on the legacy DirectX SDK component deployment.

对于使用 Direct 11 或 DirectX 12 的现代应用程序,最好使用 D3DCompile #47。它内置于 Windows 8.1 和 Windows 10 OS,headers 在 Windows 8.1 SDK 中,并且 [=22] 中有一个可重新禁用的 DLL =] 8.1 SDK,可用于 Windows Vista SP2 或更高版本 'side-by-side' 与您的应用一起部署。 SharpDX 可能应该使用那个,但如果您想支持 Windows XP,他们可能会坚持使用 #43。

For a full list of the DLLs that were deployed by the legacy DirectX SDK and DXSETUP, see KB179113. None of these are deployed by the Windows SDK nor are any of them included with any version of the Windows OS.