更新到Sharpdx 2.6.2后无法编译hlsl着色器

Nde*_*ech 3 c# directx hlsl directx-11 sharpdx

我有一个使用SharpDX 2.5.0的C#项目,一切都运行正常.我转到SharpDX的最新稳定版本2.6.2.我的项目编译正常,但在运行时失败,因为它无法编译着色器.我正在使用这行代码:

var vertexShaderByteCode = ShaderBytecode.CompileFromFile(ShaderFileName, "Base_VS", "vs_4_0");
Run Code Online (Sandbox Code Playgroud)

无论着色器文件的实际内容是什么,它都会失败并出现以下错误:

path/to/my/shader.hlsl(1,1): error X3000: Illegal character in shader file
Run Code Online (Sandbox Code Playgroud)

我认为它与文件的UTF-8编码有关,但尝试各种编码并没有解决问题.有没有其他人遇到类似的问题或有建议?

Man*_*eet 5

它已经过时了,但无论如何我都会回复:新的visual studio文本文件的默认编码是带有BOM的UTF-8.这意味着您文件的前3个字符是
这些字符是"非法的"

资料来源:http:
//en.wikipedia.org/wiki/Byte_order_mark#UTF-8