Reputation: 341
I would like to compile a hlsl shader file in my C# project in Visual Studio 2015. With a C++ project I immediately get the correct properties if I add an hlsl file like the picture below:
However when I want to do this in my C# project (with SharpDX) I do not get such options and thus can't compile to an CSO file for my project.
Does anyone know a solution for this?
Upvotes: 7
Views: 6350
Reputation: 3762
You can't do this directly in a C# project, as the Visual Studio HLSL compilation built-in integration is only working and accessible from a C++ project.
Though you could put an empty C++ project in the same solution, and then add and configure your HLSL files from there, and then reference generated cso files from your C# project as content (and add a project dependency from C# -> C++ project)... With some MSBuild trickery, you could also copy the generated content automatically into your C# project.
Upvotes: 3
Reputation: 1786
There's now a NuGet package, Microsoft.HLSL.CSharpVB, that adds support for HLSL shader properties to C# and VB projects:
This package installs MSBuild support for HLSL compilation in C# and VB projects.
Please reload your project or restart Visual Studio for the new shader Build Actions to appear in the properties window.
Upvotes: 10