我正在使用VS2010 Exp。 C#XP SP3环境
我目前的问题是SerializedVersion值
Run-Time ERROR: System.TypeInitializationException:
The type initializer for 'Antlr4.Runtime.Verilog2001Lexer' threw an exception. ---> System.NotSupportedException: Could not deserialize ATN with version 5 (expected 3).
我找到了根本原因,但我不知道一个解决方法,所以我卡住了
ATNSimulator.cs:
public abstract class ATNSimulator
{
public static readonly int SerializedVersion = 3;
…………………
public static ATN Deserialize(char[] data, bool optimize)
{
data = (char[])data.Clone();
// don't adjust the first value since that's the version number
for (int i = 1; i < data.Length; i++)
{
data[i] = (char)(data[i] - 2);
}
int p = 0;
int version = ToInt(data[p++]);
if (version != SerializedVersion) <<<<<< mismatch 5 vs. 3
{
但是在生成的词法分析器中
{ public static readonly string _serializedATN =
"\x5\x4\xB5\x638\b\x1\x4\x2\t\x2\x4\x3\t\x3\x4\x4\t\x4\x4\x5\t\x5\x4\x6"+ }
任何评论都表示赞赏 感谢
答案 0 :(得分:0)
这种情况意味着您使用旧版本的C#目标生成了词法分析器,但正在使用新版本运行代码。如果您最近更新了项目中的库,则Clean + Build将使用正确的目标重新生成语法。
如果您按照这些说明操作,请从NuGet重新安装antlr4附加组件。