Visual Studio 如何解决?单位类型存在于两个dll文件中

vfh0ocws  于 2023-03-13  发布在  其他
关注(0)|答案(7)|浏览(235)

我目前正在使用Visual Studio 11 beta进行教程。当尝试在我的一个类中设置字段值的最大长度时:

[MaxLength(50)]
public string LastName { get; set; }

它出错了,不让我编译,因为MaxLength()函数存在于两个地方:
错误4类型“系统.组件模型.数据注解.最大长度属性”同时存在于“c:\用户\我\文档\Visual Studio 11\ContosoUniversity\包\EntityFramework.4.1.10331.0\lib\net40\EntityFramework.dll”和“c:\程序文件(x86)\引用程序集\Microsoft\Framework.NETFramework\v4.5\系统.组件模型.数据注解. dll”中
我已经尝试删除这两个文件,但这只会导致更多的问题,因为我的项目中的其他代码依赖于它们。
有没有办法告诉它用一个还是另一个?

所有这些方法似乎都不适合我。请参考答案下面的评论。还有其他想法吗?

谢谢

xqkwcwgp

xqkwcwgp1#

在代码顶部使用using:

using MaxLength = System.ComponentModel.DataAnnotations
mspsb9vt

mspsb9vt2#

只需从包中卸载EntityFramework并重新安装它(EntityFramework)。它对我有效。只需按照下面提到的步骤:

1.右键单击参考2。单击管理nugetpackages。

3.单击卸载
1.进入在线部分并在搜索框中键入实体框架5。单击安装按钮

2cmtqfgy

2cmtqfgy3#

使用所需的名称空间限定属性

[System.ComponentModel.DataAnnotations.MaxLength(50)]
public string LastName { get; set; }
41ik7eoe

41ik7eoe4#

如果您在最新的环境(VS 2017/.NET Framework 4.6.x)和实体框架(如6.1或6.2)中遇到相同的错误,这里是解决方案;
把你的实体框架降级到6.0。它会工作的。

xzabzqsa

xzabzqsa5#

MaxLength不是一个函数,它是一个属性。
可以在每个文件中使用using指令指定当前正确的上下文。
或者只输入完整的名称空间,例如System.ComponentModel.DataAnnotations.MaxLength

9avjhtql

9avjhtql6#

尝试使用外部别名http://msdn.microsoft.com/en-us/library/ms173212.aspx来区分这两个程序集
另外,查看页面底部附近的http://bartdesmet.net/blogs/bart/archive/2006/10/07/4502.aspx是一个示例

ebdffaop

ebdffaop7#

这个问题现在是这个问题的首要答案,所以我想我会在这里大致回答它。
The type 'BLAH' exists in both错误通常在以下情况下弹出:

1. DUPLICATE FILES-(通常非常简单).dll文件就是这种情况。在大多数重复的情况下,删除其中一个重复文件是最简单和最好的解决方案
2. NON-DUPLICATE FILES-(更复杂,例如原始发布者的情况)不幸的是,您需要编辑并经常重新编译/查找文件的替代版本,这样就不会出现这样的冲突。幸运的是,通常情况下,使用相同的名称空间限定属性将修复这样的冲突。

  • 例如,如果您的代码在多个文件中提到的名为MaxLength的内容上发生冲突,则在必要的文件中对其进行限定,以明确您要使用的MaxLength,如下所示:System.ComponentModel.DataAnnotations.MaxLength。这应该有助于澄清问题,因此在尝试运行代码时不会发生冲突 *

相关问题