2016-05-18 4 views
5

Я хотел бы скомпилировать файл шейдера hlsl в моем проекте C# в Visual Studio 2015. С проектом C++ я сразу получаю правильные свойства, если я добавлю файл hlsl, например, изображение ниже:Как скомпилировать файл hlsl shader в Visual Studio C# project

HLSL build properties in C++

Однако, когда я хочу сделать это в моей C# проекта (с SharpDX) я не получаю такие варианты и, таким образом, не может составить к CSO файл для моего проекта.

Кто-нибудь знает, как это можно решить?

ответ

5

Там теперь пакет NuGet, Microsoft.HLSL.CSharpVB, который добавляет поддержку для HLSL шейдеров свойств в C# и VB проектов:

Этот пакет устанавливает поддержку MSBuild для HLSL компиляции в проектах VB C# и.

Перезагрузите проект или перезапустите Visual Studio для нового шейдера. Создайте действия, которые появятся в окне свойств.

3

Вы не можете сделать это непосредственно в проекте C#, как Visual StudioHLSL компиляции встроенный в интеграции только рабочие и доступны из проекта C++.

Хотя вы можете поместить пустой проект C++ в одно и то же решение, а затем добавить и настроить свои файлы HLSL оттуда, а затем ссылаться на сгенерированные cso-файлы из вашего проекта C# в качестве контента (и добавить зависимость проекта от C# -> C++ project) ... С некоторыми обманами MSBuild вы также можете скопировать созданный контент автоматически в свой проект C#.

+1

Это действительно хороший обходной путь. Установка имени файла выходного объекта файлов HLSL в $ (SolutionDir) <название основного проекта> \% (имя файла) .cso. И затем добавление файла cso в качестве файла содержимого в главный проект с «копией всегда» или «копией, если новый» сделал трюк. –

Смежные вопросы