json.net – 在Visual Studio 12.0 Blend和MVC 5 Web项目VS 2013之间出现Newtonsoft.Json.dll冲突

我在VS2013中有一个asp.net mvc 5项目,我将所有内容的nuget包更新到最新版本

然后我遇到了这个错误

Error   2   The type 'Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver' exists in both 'c:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll' and '{path to my project}\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll'

有没有其他人遇到这个.

我得到了那个错误,因为我有一个额外的
<ItemGroup>
  <Reference Include="Newtonsoft.Json">
    <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
  </Reference>
  <Reference Include="Owin">
    <HintPath>..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
    <Private>True</Private>
  </Reference>
</ItemGroup>

在我的Web.csproj中直接在通常的引用下面,它已经包含对最新的Newtonsoft.Json.dll的正确引用.在VS中,仅显示了对较新组件的引用.

解决方案是:我将有效的Owin引用移动到主引用ItemGroup并删除了过时的Newtonsoft.Json.dll引用(手动编辑csproj文件).

错误消息的原因:在我的机器上,旧的Newtonsoft.Json.dll的HintPath不存在,因此MSBuild正在寻找其他地方并采用了Blend版本.

(顺便说一句:要了解MSBuild为什么以及在哪里寻找某个装配使用TOOLS – >选项 – >项目和解决方案 – >构建和运行 – >并将“MSBuild项目构建输出详细程度”设置为“详细” “并重建项目.)

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...