我希望在我的Visual Studio 2015 C#项目中编译一个hlsl着色器文件。使用C++项目,如果我添加一个hlsl文件,就可以立即获得正确的属性,如下图所示: 然而,当我想在我的C#项目中实现这一点(使用SharpDX)时,我没有得到这样的选项,因此无法将其编译为我的项目的CSO文件。有人知道解决方法吗?
现在有一个NuGet包,Microsoft.HLSL.CSharpVB,它为C#和VB项目添加了对HLSL着色器属性的支持: 这个包在C#和VB项目中安装了HLSL编译的MSBuild支持。 请重新加载项目或重启Visual Studio,以使新的shader“Build Actions”出现在属性窗口中。
您无法直接在C#项目中进行此操作,因为Visual Studio的HLSL编译内置集成仅适用于C++项目且只能从C++项目中访问。虽然您可以在同一解决方案中添加一个空的C++项目,然后从那里添加和配置您的HLSL文件,然后将生成的cso文件作为内容引用到您的C#项目中(并添加从C#-> C++项目的项目依赖)...通过一些MSBuild技巧,您还可以自动将生成的内容复制到您的C#项目中。