我刚刚安装了Nuget软件包Newtonsoft.Json而我想想这就是为什么这行代码的原因:
IndexCreation.CreateIndexes(typeof(DataAccessFactory).Assembly, documentStore);
...正在生成此错误:
Newtonsoft.Json.JsonReaderException:{“解析值时遇到意外的字符:< .Path'', 第0行,第0位。“}
我找到了question,其中问题是Raven客户端和服务器版本不同。但这不是我的问题。我发现另一个question问题是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地狱一样。