2016-05-18 238 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文件作爲內容文件添加到主項目中,使用「始終複製」或「如果更新則複製」這些技巧。 –

相關問題