【问题标题】:The type <type> exists in both 'A' and 'B'类型 <type> 存在于“A”和“B”中
【发布时间】:2014-02-15 00:00:48
【问题描述】:

现在我知道这里已经有很多这样的问题了,但是在翻阅它们之后,我还没有找到一个可以解决我的具体问题的问题。

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

“C:..\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll”和“C:..\Visual Studio 2013\Projects\myProject”中都存在“Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver”类型\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll'

不幸的是,每个文件上的公钥都是同一个文件,所以我不能在 Web.config 中使用依赖程序集引用(如其他地方所建议的那样)。我更喜欢使用通过 NuGet 检索到的 dll,以便更轻松地升级到新版本。

此外,Internet 临时文件夹中没有一个,所以我不能简单地删除它并让它工作。

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

【问题讨论】:

    标签: asp.net visual-studio


    【解决方案1】:

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

    <ItemGroup>
        <Reference Include="Newtonsoft.Json">
            <HintPath>..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll</HintPath>
        </Reference>
    </ItemGroup>
    

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

    【讨论】:

    • 这成功了。对于遇到同样问题的任何人,请注意,您不应删除项目组中对较高版本号的引用,而应仅删除较低版本号。
    • 也为我醒来。通过数据包管理器控制台更新了我的 Newtonsoft 库后,问题就开始了。
    • 在该文件中,您应该将项目组合并到一个项目组并删除较低版本的参考
    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 2011-12-08
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2017-12-28
    相关资源
    最近更新 更多