2016-05-18 236 views
5

我想在Visual Studio 2015中的C#项目中编译hlsl着色器文件。使用C++项目,我立即得到正确的属性,如果我添加hlsl文件如下图:如何在Visual Studio中编译hlsl着色器文件C#项目

HLSL build properties in C++

然而,当我想这样做,在我的C#项目(含SharpDX)我没有得到这样的选项,因此不能编译为我的项目的CSO文件。

有没有人知道这个解决方案?

回答

5

现在有一个NuGet包,Microsoft.HLSL.CSharpVB,这增加了支持HLSL着色性能,C#和VB项目:

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

请重新加载您的项目或重新启动Visual Studio以使新着色器生成操作显示在属性窗口中。

3

不能在C#项目直接做到这一点,作为的Visual StudioHLSL编译内置集成唯一的工作,并从C++项目访问。尽管你可以在同一个解决方案中放置一个空的C++项目,然后从那里添加和配置你的HLSL文件,然后从你的C#项目中引用生成的cso文件作为内容(并且从C#添加项目依赖项 - > C++项目)...使用一些MSBuild技巧,您也可以将生成的内容自动复制到您的C#项目中。

+1

这确实是一个很好的解决方法。将HLSL文件的输出对象文件名设置为$(SolutionDir)<主项目名称> \%(文件名).cso。然后将cso文件作为内容文件添加到主项目中,使用“始终复制”或“如果更新则复制”这些技巧。 –

相关问题