【发布时间】:2016-05-18 14:02:16
【问题描述】:
我想在 Visual Studio 2015 的 C# 项目中编译一个 hlsl 着色器文件。对于一个 C++ 项目,如果我添加如下图所示的 hlsl 文件,我会立即获得正确的属性:
但是,当我想在我的 C# 项目(使用 SharpDX)中执行此操作时,我没有获得此类选项,因此无法编译为我的项目的 CSO 文件。
有人知道解决办法吗?
【问题讨论】:
我想在 Visual Studio 2015 的 C# 项目中编译一个 hlsl 着色器文件。对于一个 C++ 项目,如果我添加如下图所示的 hlsl 文件,我会立即获得正确的属性:
但是,当我想在我的 C# 项目(使用 SharpDX)中执行此操作时,我没有获得此类选项,因此无法编译为我的项目的 CSO 文件。
有人知道解决办法吗?
【问题讨论】:
现在有一个 NuGet 包 Microsoft.HLSL.CSharpVB,它为 C# 和 VB 项目添加了对 HLSL 着色器属性的支持:
此包安装 MSBuild 支持,以支持 C# 和 VB 项目中的 HLSL 编译。
请重新加载您的项目或重新启动 Visual Studio,以便新的着色器构建操作出现在属性窗口中。
【讨论】:
您不能直接在 C# 项目中执行此操作,因为 Visual Studio HLSL 编译内置集成只能从 C++ 中工作和访问 项目。
虽然您可以将一个空的 C++ 项目放在同一个解决方案中,然后从那里添加和配置您的 HLSL 文件,然后从您的 C# 项目中引用生成的 cso 文件作为内容(并从 C# -> C++ 添加项目依赖项project)... 使用一些 MSBuild 技巧,您还可以将生成的内容自动复制到您的 C# 项目中。
【讨论】: