我将在我的Windows 10工作站中使用HelixToolkit.SharpDX和VS2017,当我尝试构建解决方案时,它会在"未找到fxc.exe&#34时提示Assertion Failed错误;
我已经检查了安装选项,已经包含了Windows SDK,并且我已经下载并再次安装,我可以在" C:\ Program Files(x86)\ Windows Kits \ 10中看到fxc.exe \ BIN \ 10.0.16299.0 \ 64" &安培; " 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? 或者我该如何解决这个问题?
答案 0 :(得分:4)
将Bin \ 10.0.xxx \ x86中的fxc.exe复制到Bin \ x86以解决此问题。因为HLSL编译工具对路径进行了硬编码。
答案 1 :(得分:1)
可以在helix toolkit github页面找到解决方案。
Visual Studio 2017.Windows 10 SDK。
最新的Windows 10 SDK缺少fxc.exe问题:
在C:\ Program Files(x86)\ Windows中复制fxc.exe 套件\ 10 \ Bin \ 10.0.xxx \ x86到C:\ Program Files(x86)\ Windows 套件\ 10 \ bin \ x86来解决这个问题。因为HLSL编译工具很难 编码路径。
答案 2 :(得分:0)
在撰写本文时,这似乎已在Visual Studio 2019 16.0.2中修复。只需确保$(WindowsSDK_ExecutablePath)
指向正确的SDK目录以及与“项目属性”页面中的“目标平台”相匹配的生成版本即可。
第二个帖子回答:
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着色器而没有任何问题。这些已经过测试,因为这些是我已经安装的版本。