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);
}
这个问题可能有两个原因:
- 您的解决方案中有多个项目使用不同版本的 Newtonsoft.Json
- 您在 bin / obj / 临时文件夹中的某处有一个流氓 Newtonsoft.Json dll。
解决方案:
- 如果您使用 Visual Studio,那么您可以使用它来查看您在解决方案的每个项目中使用的参考。
查看哪个项目使用哪个版本的 Newtonsoft.Json 。您只想使用一个,只要您保持一致,哪个都无所谓。找到适用于所有项目的最低版本并在任何地方使用它。一旦您只使用了 Newtonsoft.Json 的一个版本,您就可以重新构建并继续您的工作。
如果您允许您的解决方案使用多个版本,您将继续遇到问题。当您构建一个解决方案时,每个项目都会被构建,并且生成的 dll,包括它们的其他引用被复制到它们需要的任何目的地。它们甚至会相互覆盖,这会引发另一组问题,因为一个项目期望 12.0,但得到的是版本 6。
- 首先清理解决方案,这会删除所有 dll。确保删除所有地方的 Bin 和 Obj 文件夹。然后去清理临时 Internet 文件
这将处理您可能拥有的所有意外版本。您可能在某个地方有一些您甚至不知道的被遗忘的 dll。
我每次尝试使用某些 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);
}
这个问题可能有两个原因:
- 您的解决方案中有多个项目使用不同版本的 Newtonsoft.Json
- 您在 bin / obj / 临时文件夹中的某处有一个流氓 Newtonsoft.Json dll。
解决方案:
- 如果您使用 Visual Studio,那么您可以使用它来查看您在解决方案的每个项目中使用的参考。 查看哪个项目使用哪个版本的 Newtonsoft.Json 。您只想使用一个,只要您保持一致,哪个都无所谓。找到适用于所有项目的最低版本并在任何地方使用它。一旦您只使用了 Newtonsoft.Json 的一个版本,您就可以重新构建并继续您的工作。
如果您允许您的解决方案使用多个版本,您将继续遇到问题。当您构建一个解决方案时,每个项目都会被构建,并且生成的 dll,包括它们的其他引用被复制到它们需要的任何目的地。它们甚至会相互覆盖,这会引发另一组问题,因为一个项目期望 12.0,但得到的是版本 6。
- 首先清理解决方案,这会删除所有 dll。确保删除所有地方的 Bin 和 Obj 文件夹。然后去清理临时 Internet 文件 这将处理您可能拥有的所有意外版本。您可能在某个地方有一些您甚至不知道的被遗忘的 dll。