如何在 Visual Studio C# 项目中编译 hlsl 着色器文件
How to compile hlsl shader file in Visual Studio C# project
我想在 Visual Studio 2015 年的 C# 项目中编译一个 hlsl 着色器文件。对于 C++ 项目,如果我添加如下图所示的 hlsl 文件,我会立即获得正确的属性:
然而,当我想在我的 C# 项目(使用 SharpDX)中执行此操作时,我没有获得此类选项,因此无法为我的项目编译成 CSO 文件。
有人知道这个的解决方案吗?
您不能直接在 C# 项目中执行此操作,因为 Visual Studio HLSL 编译内置集成只能在 C++ 项目中工作和访问。
尽管您可以在同一个解决方案中放置一个空的 C++ 项目,然后从那里添加和配置您的 HLSL 文件,然后从您的 C# 项目中引用生成的 cso 文件作为内容(并从 C# 添加项目依赖项 - > C++ 项目)...通过一些 MSBuild 技巧,您还可以将生成的内容自动复制到您的 C# 项目中。
现在有一个 NuGet 包,Microsoft.HLSL.CSharpVB,它向 C# 和 VB 项目添加了对 HLSL 着色器属性的支持:
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.
我想在 Visual Studio 2015 年的 C# 项目中编译一个 hlsl 着色器文件。对于 C++ 项目,如果我添加如下图所示的 hlsl 文件,我会立即获得正确的属性:
然而,当我想在我的 C# 项目(使用 SharpDX)中执行此操作时,我没有获得此类选项,因此无法为我的项目编译成 CSO 文件。
有人知道这个的解决方案吗?
您不能直接在 C# 项目中执行此操作,因为 Visual Studio HLSL 编译内置集成只能在 C++ 项目中工作和访问。
尽管您可以在同一个解决方案中放置一个空的 C++ 项目,然后从那里添加和配置您的 HLSL 文件,然后从您的 C# 项目中引用生成的 cso 文件作为内容(并从 C# 添加项目依赖项 - > C++ 项目)...通过一些 MSBuild 技巧,您还可以将生成的内容自动复制到您的 C# 项目中。
现在有一个 NuGet 包,Microsoft.HLSL.CSharpVB,它向 C# 和 VB 项目添加了对 HLSL 着色器属性的支持:
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.