我刚刚安装了 Nuget 包 Newtonsoft.Json,我认为这就是这行代码的原因:
IndexCreation.CreateIndexes(typeof(DataAccessFactory).Assembly, documentStore);
...正在生成此错误:
Newtonsoft.Json.JsonReaderException:{“解析值时遇到意外字符:<。路径'',第0行,位置0。”}
我发现问题出在 Raven 客户端和服务器版本不同的地方。但这不是我的问题。我发现另一个问题是 Newtonsoft.Json 程序集冲突;RavenDB 使用的一个版本,SignalR 使用的另一个版本。
我不明白 RavenDB 2230 使用什么 Newtonsoft.Json.dll。旧版本的 RavenDB 在 Server 文件夹中有 Newtonsoft.Json.dll。RavenDB 2230 在其文件夹结构中的任何位置都没有 Newtonsoft.Json.dll。为什么?如果 RavenDB 需要 Newtonsoft.Json.dll,为什么没有呢?如果它需要它,我怎么知道要使用哪个版本?如果我知道,我可以重定向 SignalR 以使用此版本(如上述问题之一的答案之一所示)。
更复杂的是,我无法卸载 Newtonsoft.Json 包。我收到 SignalR 依赖它的错误。如果我先卸载 SignalR 包,然后我可以卸载 Newtonsoft.Json 包。但是,当我再次安装 SignalR 时,它会安装 Newtonsoft.Json。我不想要那个Newtonsoft.Json,但 Nuget 会为我安装它。这感觉就像 DLL 地狱又来了。