Visual studio 2017 VS2017在windows 10中找不到fxc.exe

Visual studio 2017 VS2017在windows 10中找不到fxc.exe,visual-studio-2017,Visual Studio 2017,我将在我的Windows 10工作站中使用带VS2017的HelixToolkit.SharpDX,当我尝试构建解决方案时,它将提示断言失败错误,并显示“找不到fxc.exe” 我已经检查了安装选项,包括了Windows SDK,并且我已经下载并再次安装,我可以在“C:\Program Files(x86)\Windows Kits\10\bin\10.0.16299.0\x64”和“C:\Program Files(x86)\Windows Kits\10\bin\10.0.16299.0\x

我将在我的Windows 10工作站中使用带VS2017的HelixToolkit.SharpDX,当我尝试构建解决方案时,它将提示断言失败错误,并显示“找不到fxc.exe”

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

但是,我也在另一台Windows 7机器上安装了VS2017,它工作正常,并且它的fxc.exe与我的Windows 10工作站位于同一文件夹中,但可以在VS2017找到它

VS2017中是否有定位fxc.exe的设置?
或者如何解决此问题?

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

可以在第页找到解决方案

Visual Studio 2017。Windows10SDK

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

在C:\Program Files(x86)\Windows中复制fxc.exe Kits\10\Bin\10.0.xxx\x86到C:\Program Files(x86)\Windows 用于修复此问题的套件\10\bin\x86。因为HLSL编译工具很难 对路径进行编码


在撰写本文时,VisualStudio201916.0.2中似乎已经解决了这一问题。只需确保
$(WindowsSDK\u ExecutablePath)
在项目属性页中指向正确的SDK目录和与目标平台匹配的生成版本

第二条答复:

< P>从Windows SDK目录中使用的C++构建过程的可执行文件是MIDLEXE、MT.EXE和R.EXE。如果您对可执行文件进行数字签名,那么您也可以在此处找到signtool.exe。因此,我有点惊讶,它正确地找到了一些关键的构建工具,但没有找到其他工具

我的建议是:

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

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

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

但我要提到的是,在我这方面的一个幼稚测试表明,Visual Studio 2019可以使用18362、17763和17134 SDK编译HLSL着色器,而不会出现任何问题。这些是经过测试的,因为这些是我安装的版本


请尝试在我的Windows 10计算机上重新安装VS2017,报告了相同的错误。VS2017似乎无法识别Windows SDK中的fxc.exe,即使我在安装过程中包含了此选项。再次尝试重新安装,仍然失败。尝试添加路径,以便可以在任何位置直接执行fxc,但仍然失败。比较两个工作站的注册表,它们都有fxc.exe项,但在Windows 7中,相关项将链接到Windows工具包类,而Windows 10没有此类项。这似乎是安装程序中的问题,它没有正确更新注册表。有人知道怎么修吗?谢谢。将fxc.exe从10.0.16299.0复制到bin文件夹似乎可以解决此问题。MSBuild似乎不会向下搜索到特定版本,它假定可执行文件位于C:\Program Files(x86)\Windows Kits\10\bin的x64或x86中。我想知道是否有正式的解决办法。