【问题标题】:fxc.exe not found by VS2017 in windows 10VS2017 在 Windows 10 中找不到 fxc.exe
【发布时间】:2019-04-22 23:10:19
【问题描述】:

我将在我的 Windows 10 工作站中将 HelixToolkit.SharpDX 与 VS2017 一起使用,当我尝试构建解决方案时,它会提示 Assertion Failed 错误并显示“未找到 fxc.exe”。

我检查了安装选项,Windows SDK已经包含,我已经下载并重新安装,我可以在“C:\Program Files (x86)\Windows Kits\10\bin\看到fxc.exe 10.0.16299.0\x64" & "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86" 文件夹,因此它应该适用于任何 Windows 版本,但不幸的是,报告了相同的错误。

但是,我还在另一台 Windows 7 机器上安装了 VS2017,它运行良好,并且 fxc.exe 与我的 Windows 10 工作站位于同一文件夹中,但它可以通过 VS2017 找到。

VS2017中有没有设置fxc.exe的位置? 或者我该如何解决这个问题?

【问题讨论】:

  • 尝试在我的 Windows 10 机器上重新安装 VS2017,报告同样的错误。即使我在安装过程中包含了这个选项,VS2017 似乎也无法识别 Windows SDK 中的 fxc.exe。
  • 尝试重新安装,仍然失败。尝试添加路径,让fxc可以在任意位置直接执行,还是失败。比较两台工作站的注册表,都有fxc.exe的入口,但是在Windows 7中,相关键会链接到Windows Kits类,而Windows 10没有这样的入口。好像是安装程序有问题,没有正确更新注册表。任何人都知道如何解决它?谢谢。
  • 问题似乎可以通过将fxc.exe从10.0.16299.0复制到bin文件夹来解决,似乎MSBuild不会搜索到特定版本,它假设可执行文件位于x64或x86 的 C:\Program Files (x86)\Windows Kits\10\bin。我想知道有没有官方的解决方案。

标签: visual-studio-2017


【解决方案1】:

将 Bin\10.0.xxx\x86 中的 fxc.exe 复制到 Bin\x86 以解决此问题。因为 HLSL 编译工具对路径进行了硬编码。

【讨论】:

    【解决方案2】:

    可以在helix toolkit github页面上找到解决方案。

    Visual Studio 2017。Windows 10 SDK。

    最新的 Windows 10 SDK 缺少 fxc.exe 问题:

    将 fxc.exe 复制到 C:\Program Files (x86)\Windows Kits\10\Bin\10.0.xxx\x86 到 C:\Program Files (x86)\Windows Kits\10\bin\x86 来解决这个问题。因为 HLSL 编译工具很难 编码路径。

    【讨论】:

      【解决方案3】:

      在撰写本文时,这似乎已在 Visual Studio 2019 16.0.2 中得到修复。只需确保 $(WindowsSDK_ExecutablePath) 指向正确的 SDK 目录以及与项目属性页面中的目标平台匹配的构建版本。

      https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/a3032567-d8e7-4b01-81b7-0612047a6299/why-do-we-need-to-copypaste-fxcexe-from-bin100xxxxx0x86-to-binx86-directory-in-the?forum=windowssdk

      第二个帖子回复:

      C++ 构建过程使用的 Windows SDK 目录中的可执行文件是 MIDL.exe、MT.exe 和 RC.exe。如果您对可执行文件进行数字签名,那么您也会在此处找到 signtool.exe。因此,我很惊讶它正确地找到了一些关键的构建工具,但找不到其他工具。

      我的建议是:

      1) 在 Visual Studio 2019 16.0.2(撰写本文时的最新版本)或 Visual Studio 2019 Preview(撰写本文时为 16.1 Preview 1)中验证您的项目是否存在此问题。这是为了检查如果发现这是一个错误,那么它可能已经被修复了。

      2) 创建一个全新的项目。在不触及项目的可执行路径的情况下,尝试创建一个显示此行为的示例。它不需要是完整的示例,只要完整到足以表明 Visual Studio 无法找到 fxc.exe。

      3) 如果执行所有这些都表明 Visual Studio 无法找到 fxc.exe,则通过 Visual Studio 2019 将其报告为错误。

      但我要提一下,我的一个天真的测试表明 Visual Studio 2019 可以使用 18362、17763 和 17134 SDK 编译 HLSL 着色器而没有任何问题。这些是经过测试的,因为这些是我安装的版本。

      【讨论】:

        猜你喜欢
        • 2018-12-29
        • 2018-01-22
        • 2016-08-15
        • 2018-02-28
        • 2018-02-06
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        相关资源
        最近更新 更多