Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compile hlsl shader file in Visual Studio C# project

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:

HLSL build properties in C++

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?

like image 339
N Jacobs Avatar asked May 18 '16 14:05

N Jacobs


2 Answers

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.

like image 163
Tim Jones Avatar answered Sep 21 '22 04:09

Tim Jones


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.

like image 33
xoofx Avatar answered Sep 21 '22 04:09

xoofx