当我添加Nuget包System.ComponentModel.Annotations时,我得到了错误
名称空间'DataAnnotations‘中不存在类型或名称空间名称'System.ComponentModel’
发生的事情是,我从一个图书示例中打开了一个旧的ASP.NET Core1.0项目,并对其进行了VS17升级。然后,当然,我在VS17依赖项中收到了许多来自NuGet的警告。因此,我将项目转换为Core2.1,并更新了所有NuGet依赖项。
但现在它抱怨这些属性。
知道吗?

发布于 2018-10-15 10:39:59
好的,所以这个问题的一个旁路是在项目根dotnet restore的命令中运行,在VisualStudio完成他的转换之后。
这解决了这个问题,而不必转换为.NET核心2.0或更高版本。
发布于 2018-10-15 08:59:13
名称空间'DataAnnotations‘中不存在类型或名称空间名称'System.ComponentModel’
首先,您可以注意到关于包System.ComponentModel.Annotations的描述

没有可以使用的直接命名空间System.ComponentModel.Annotations。因此,尽管我们安装了System.ComponentModel.Annotations Nuget包,然后使用System.ComponentModel.DataAnnotations命名空间。对于那些像我这样被挂起不同名称空间更长时间的人来说,澄清是正确的。
因此,我们不需要第一个命名空间语句。
第二个问题,就像turao8所说的,Microsoft.AspNetCore.App --包括它自己版本的数据注释--不需要在nuget包中再次添加它。
我已经创建了一个带有任何其他nuget包的测试示例,它运行得很好:

要解决这个问题,您可以创建一个新的.net核心2.1项目,然后将代码复制到新项目,然后根据需要添加引用,毕竟旧的.net core 1.0和2.1仍然有很多不同之处。
希望这能有所帮助。
发布于 2020-09-18 08:30:44
https://stackoverflow.com/questions/52796857
复制相似问题