2016-05-18 31 views
5

Vorrei compilare un file hlsl shader nel mio progetto C# in Visual Studio 2015. Con un progetto C++ ottengo immediatamente le proprietà corrette se aggiungo un file hlsl come il foto qui sotto:Come compilare il file hlsl shader nel progetto Visual Studio C#

HLSL build properties in C++

Tuttavia quando voglio fare questo nel mio progetto C# (con SharpDX) non ottengo tali opzioni e quindi non può compilare in un file CSO per il mio progetto.

Qualcuno sa una soluzione per questo?

risposta

5

Ora c'è un pacchetto di NuGet, Microsoft.HLSL.CSharpVB, che aggiunge il supporto per le proprietà degli shader HLSL per C# e progetti VB:

Questo pacchetto installa il supporto MSBuild per HLSL compilazione in C# e progetti VB.

Ricarica il progetto o riavvia Visual Studio per il nuovo shader. Crea azioni da visualizzare nella finestra delle proprietà.

3

Non è possibile farlo direttamente in un progetto C#, come il Visual StudioHLSL compilation built-in di integrazione sta lavorando solo ed accessibile da un progetto C++.

Sebbene sia possibile inserire un progetto C++ vuoto nella stessa soluzione, quindi aggiungere e configurare i file HLSL da lì e quindi fare riferimento ai file cso generati dal progetto C# come contenuto (e aggiungere una dipendenza del progetto da C# -> Progetto C++) ... Con alcuni trucchi di MSBuild, è anche possibile copiare automaticamente il contenuto generato nel progetto C#.

+1

Questa è davvero una buona soluzione. Impostare il nome del file oggetto di uscita dei file HLSL su $ (SolutionDir) \% (Nome file) .cso. E poi aggiungere il file cso come file di contenuto al progetto principale con "copia sempre" o "copia se più recente" ha fatto il trucco. –