Newtonsoft.Json nuget 错误,一些引用不起作用

Newtonsoft.Json nuget error, some references do not work

我每次尝试使用某些 Newtonsoft.Json 配置时都​​需要帮助,出现错误:

Severity Code Description Project File Line Suppression State Suppression State
Error CS0433 The type "JObject" exists in "Newtonsoft.Json, Version = 6.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed" and "Newtonsoft.Json, Version = 12.0.0.0, Culture = neutral,
PublicKeyToken = 30ad4fe6b2a6aeed "mia C: \ Users \ Wesley \ source \ repos \ mia2 \ mia \ Controllers \ Api \ ContaController.cs 18 Active

我已经重新安装了我的 Nuget 包好几次了,但它不起作用,只有在这个应用程序中我遇到了这个问题

我的控制器示例

public IHttpActionResult Login (JObject form)
    {
        db.Configuration.ProxyCreationEnabled = false;
        var email = string.Empty;
        var password = string.Empty;

        dynamic JsonObject = form;

        try
        {
            email = JsonObject.Email.Value;
            password = JsonObject.Password.Value;
        }
        catch
        {

            return BadRequest("chamada Incorreta, Campo Usuário e Senha são necessários");
        }

        var userContext = new ApplicationDbContext();
        var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(userContext));
        var userASP = userManager.Find(email, password);

        if (userASP == null)
        {
            return this.BadRequest("Usuário ou Senha incorretos");
        }

        var user = db.Users.Where(u => u.UserName == email).FirstOrDefault();

        if (userASP == null)
        {
            return this.BadRequest("Usuário ou Senha incorretos");
        }

        var userResponse = new UserResponse
        {
            UserId = user.UserId,
            UserName = user.UserName,
            FirstName = user.FirstName,
            LastName = user.LastName,
            Admin = userManager.IsInRole(userASP.Id, "Admin"),
            Analista = userManager.IsInRole(userASP.Id, "Analista"),
            Parceiro = userManager.IsInRole(userASP.Id, "Parceiro"),
            Vendedor = userManager.IsInRole(userASP.Id, "Vendedor"),
            Financeiro = userManager.IsInRole(userASP.Id, "Financeiro"),
            IsEnabled = user.IsEnabled,
            TinyUserId = user.TinyUserId,
            ConsultorId = user.ConsultorId,
            CampanhaId = user.CampanhaId,

        };
                return Ok(userResponse);
    }

这个问题可能有两个原因:

    1. 您的解决方案中有多个项目使用不同版本的 Newtonsoft.Json
    1. 您在 bin / obj / 临时文件夹中的某处有一个流氓 Newtonsoft.Json dll。

解决方案:

    1. 如果您使用 Visual Studio,那么您可以使用它来查看您在解决方案的每个项目中使用的参考。 查看哪个项目使用哪个版本的 Newtonsoft.Json 。您只想使用一个,只要您保持一致,哪个都无所谓。找到适用于所有项目的最低版本并在任何地方使用它。一旦您只使用了 Newtonsoft.Json 的一个版本,您就可以重新构建并继续您的工作。

如果您允许您的解决方案使用多个版本,您将继续遇到问题。当您构建一个解决方案时,每个项目都会被构建,并且生成的 dll,包括它们的其他引用被复制到它们需要的任何目的地。它们甚至会相互覆盖,这会引发另一组问题,因为一个项目期望 12.0,但得到的是版本 6。

    1. 首先清理解决方案,这会删除所有 dll。确保删除所有地方的 Bin 和 Obj 文件夹。然后去清理临时 Internet 文件 这将处理您可能拥有的所有意外版本。您可能在某个地方有一些您甚至不知道的被遗忘的 dll。