Newtonsoft. Json ошибка nuget, некоторые ссылки не работают - PullRequest
0 голосов
/ 20 февраля 2020

Мне нужна помощь каждый раз, когда я пытаюсь использовать какую-либо конфигурацию 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 Ответ

0 голосов
/ 21 февраля 2020

Существует две возможные причины этой проблемы:

    1. В вашем решении несколько проектов, использующих разные версии Newtonsoft. Json
  • У вас есть мошенник Newtonsoft. Json dll где-нибудь в папке bin / obj / временная.

Решение:

    1. Если вы используете Visual Studio, вы можете использовать его, чтобы увидеть, какую ссылку вы используете в каждом проекте своего решения. Проверьте, какой проект использует какую версию Newtonsoft. Json. Вы хотите использовать только один, не важно, какой из них, пока вы последовательны. Найдите самую низкую версию, которая работает во всех проектах, и используйте ее везде. Как только вы перейдете на одну версию Newtonsoft. Json, вы сможете снова построить и продолжить работу.

Если вы разрешите своему решению использовать несколько версий, вы сохраните возникли проблемы. Когда вы создаете решение, создается каждый проект, и полученные библиотеки, включая их другие ссылки, копируются в любое место назначения. Они даже переопределят друг друга, что и вызывает другой набор проблем, поскольку проект ожидает 12.0, например, но вместо этого получает версию 6.

  • Начните с очистки раствора, который удаляет все DLL. Убедитесь, что вы удаляете папки Bin и Obj везде. Затем go и очистите также временные файлы Inte rnet. Это позаботится обо всех случайных версиях, которые у вас могут быть. Возможно, у вас есть где-то забытые библиотеки, о которых вы даже не знаете.
...