类型<type>同时存在于'A'和'B'中

Xan*_*iff 14 asp.net visual-studio

现在我知道这里已经有很多这样的问题了,但是翻过它们之后,我找不到解决我特定问题的问题了.

我有一个ASP.NET MVC 4.5项目.我使用NuGet并将Newtonsoft.Json添加到项目中.只要我在我的代码中使用它(在camel-case中进行一些序列化),我的项目就不再正确构建,并出现以下错误:

类型'Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver'存在于'C:..\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll"和'C:..\Visual Studio 2013\Projects\myProject\packages\Newtonsoft.Json.6.0.1\LIB \net45\Newtonsoft.Json.dll"

不幸的是,它是相同的文件到每个公钥,所以我不能使用Web.config中的依赖程序集引用(如其他地方所建议).我更喜欢使用通过NuGet检索的DLL,因此升级到新版本更容易.

此外,没有人在Temporary Internet文件夹中,所以我不能简单地删除它并使其工作.

如何指定我想要使用的特定程序集文件,以便我可以正确构建项目?谢谢!

Khe*_*pri 32

Xaniff,手动打开您的项目文件并查找Newtonsoft.您很可能会找到一个项目组,其中引用了与您的nuget包不匹配的版本.在我的情况下,我发现了这个:

<ItemGroup>
    <Reference Include="Newtonsoft.Json">
        <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
    </Reference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

我删除了这个项目组,关闭了项目文件,重新加载,一切都很顺利.

  • 这样做了.对于遇到同样问题的任何人,请注意,不应将项目组中的引用删除为较高版本号,而应删除较低版本号. (2认同)