gpt4 book ai didi

asp.net-mvc - 引用不同版本的 Json.NET dll

转载 作者:行者123 更新时间:2023-12-03 17:56:02 27 4
gpt4 key购买 nike

我正在玩我的 mvc 项目。

  • 我将一个名为 SocialAuth.Net 的包添加到项目中,该项目又使用 Newtonsoft.Json.dll 4.0.0.0(较旧)作为其依赖项之一。
  • 然后因为我自己也需要 Json.Net,所以我想要一个更新的版本,所以我 Nugeted Json.NET,它有一个更新的版本 4.5.0.0(更新)。

  • 然后问题发生了。在我的 Razor View “ViewBag.Title = ....”它有红色下划线说:

    Warning 1 c:\users\admin\documents\visual studio 2010\Projects\WebApp\WebApp\Views\Home\Index.cshtml: ASP.NET runtime error: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)



    这是我的 web.config 的 Json 部分:
      <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
    </dependentAssembly>

    所以,
  • 我去了 References,检查并发现 Newtonsoft.Json 是 4.0.0.0(可能随 SocialAuth.Net 一起提供),我删除了它,并添加了我从 Nuget 获得的 4.5.0.0 引用。
  • 我进入 WebApp/bin/debug/文件夹并删除所有内容,然后重建项目。

  • 但是,一旦我重建了 webapp,Newton.Json 4.0.0.0 就会回到 bin/debug/,不管我如何手动将它引用到新的 Nuget 4.5.0.0。同样的错误又回来了。我被困住了。

    您知道如何处理这个 dll 问题吗?谢谢你。

    编辑 - - - - - - - - - - - - - - - - - -

    经过一番思考,我明白这是因为首先链接 Json.Net(较新的 4.5),然后在构建时较旧的。所以旧的会覆盖新的。

    我不熟悉 GAC 安装,但知道我可以打开那 jar 蠕虫并在那里安装 2 个版本,我不想这样做,因为这意味着我必须对部署 Web 应用程序的每台机器都这样做。有没有办法玩 web.config 并解决这个问题?

    最佳答案

    您可以尝试使用 ‑IgnoreDependencies 安装 SocialAuth.Net 包。标志,然后手动安装依赖项并确保您只安装最新版本的 Json.Net 库。

    然后在运行时 SocialAuth.Net 包将尊重程序集重定向并加载 Json.Net (v4.5) 而不是旧版本。

    关于asp.net-mvc - 引用不同版本的 Json.NET dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11430396/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com