如何在Visual Studio C#项目中编译hlsl着色器文件

时间:2016-05-18 14:02:17

标签: c# shader hlsl sharpdx

我想在Visual Studio 2015中的C#项目中编译一个hlsl着色器文件。如果我添加一个hlsl文件,我会立即获得正确的属性,如下图所示:

HLSL build properties in C++

但是当我想在我的C#项目(使用SharpDX)中执行此操作时,我没有获得这样的选项,因此无法编译为我的项目的CSO文件。

有没有人知道这方面的解决方案?

2 个答案:

答案 0 :(得分:8)

现在有一个NuGet包Microsoft.HLSL.CSharpVB,它将对HLSL着色器属性的支持添加到C#和VB项目中:

  

此软件包在C#和VB项目中安装MSBuild对HLSL编译的支持。

     

请重新加载项目或重新启动Visual Studio,以便新的着色器构建操作显示在属性窗口中。

答案 1 :(得分:3)

您不能直接在C#项目中执行此操作,因为 Visual Studio HLSL 编译内置集成仅在 C ++中可用且可访问项目。

虽然您可以在同一个解决方案中放置一个空C ++项目,然后从那里添加和配置HLSL文件,然后从C#项目中引用生成的cso文件作为内容(并从C#添加项目依赖项 - > C ++项目)...通过一些MSBuild技巧,您还可以将生成的内容自动复制到C#项目中。