Ray*_*Ray 6 json.net visual-studio-2013 asp.net-mvc-5
我在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'
Run Code Online (Sandbox Code Playgroud)
有没有其他人遇到这个.
blu*_*ing 21
我得到了那个错误,因为我有一个额外的
<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>
Run Code Online (Sandbox Code Playgroud)
在我的Web.csproj中直接在通常的引用下面,它已经包含对最新的Newtonsoft.Json.dll的正确引用.在VS中,仅显示了对较新组件的引用.
解决方案是:我将有效的Owin引用移动到主引用ItemGroup并删除了过时的Newtonsoft.Json.dll引用(手动编辑csproj文件).
错误消息的原因:在我的机器上,旧的Newtonsoft.Json.dll的HintPath不存在,因此MSBuild正在寻找其他地方并采用了Blend版本.
(顺便说一句:要了解MSBuild为什么以及在哪里寻找某个程序集使用工具 - >选项 - >项目和解决方案 - >构建和运行 - >并将"MSBuild项目构建输出详细程度"设置为"详细"并重建项目.)
我根本不使用 Blend,因此我将 Blend Newtonsoft.Json.dll 重命名为“Newtonsoft.Json.dll.bak”。Marcus在Connect bug中提到了这一点。Marcus 继续说道,Blend 可能不会太多使用 Newtonsoft.Json.dll,因此即使您使用 Blend,此修复也可能不会影响您的工作。
| 归档时间: |
|
| 查看次数: |
6181 次 |
| 最近记录: |