为什么我不能引用System.ComponentModel.DataAnnotations?

时间:2012-04-16 12:50:57

标签: c# wpf data-annotations

我正在尝试在我的WPF项目中使用DataAnnotations来指定字符串的最大长度,具有以下内容:

using System.ComponentModel.DataAnnotations;

然而,我收到错误

  

类型或命名空间名称“DataAnnotations”不存在于   命名空间'System.ComponentModel'(你错过了一个程序集   引用?)

我已经看到了此命名空间中存在DataAnnotations 的其他示例。我正在使用C#4。我有什么理由不能用这个吗?我该怎么做才能解决它?

15 个答案:

答案 0 :(得分:144)

您必须引用定义此命名空间的程序集(默认情况下,Visual Studio模板中不会引用它)。打开引用管理器并添加对System.ComponentModel.DataAnnotations程序集的引用(Solution explorer - > Add reference - > Select .Net tab - > select list.ComponentModel.DataAnnotations from list)

答案 1 :(得分:9)

参考System.ComponentModel.DataAnnotations

在使用System.ComponentModel.DataAnnotations的代码文件中;在文件的顶部,例如:

using System.ComponentModel.DataAnnotations;

通过右键单击解决方案资源管理器中的项目,为项目添加.NET引用:

enter image description here

希望这有帮助!这个问题对我有帮助。

答案 2 :(得分:4)

我也有同样的问题,我通过在我的一个没有提到参考的项目中添加引用来解决。如果您的解决方案中有2-3个项目,请通过将此引用添加到其他项目来进行检查。

答案 3 :(得分:4)

如果你没有引用它(比如我没有),你也可以添加NuGet System.ComponentModel.Annotations来获取程序集并解决错误。 (在这里添加它作为此答案仍然是谷歌的顶部错误)

答案 4 :(得分:2)

将FrameWork 4.5及更高版本用于您的项目,然后解决问题。因为此命名空间低于4.5及以上。

答案 5 :(得分:2)

我发现我无法从Silverlight 5引用System.ComponentModel.DataAnnotations,其中以下版本为(1)。我发现Silverlight 5程序集不能使用.NET程序集,它会出现错误“你无法添加对System.ComponentModel.DataAnnotations的引用,因为它不是针对Silverlight运行时构建的......”我计​​划解决这个问题。希望安装在下面(2)中找到的Silverlight 5软件包。如果失败,我会更新这篇文章。

[更新:它失败了。我安装了与Silverlight 5相关的所有内容,但我没有.dll程序集System.ComponentModel.DataAnnotations的Silverlight版本。太糟糕了。更新II:我发现一个旧的.dll具有此名称,来自之前安装的用于Visual Studio 2008或2010的Silverlight开发人员工具包。我添加了此文件,似乎“工作”,因为IntelliSense现在识别类成员的属性,例如[Display(Name = "My Property Name")].这是否适用于此.dll中的其他所有内容我不知道。]

(1)

Microsoft Visual Studio Professional 2013
Version 12.0.21005.1 REL
Microsoft .NET Framework
Version 4.5.51641

已安装版本:专业

(2) http://go.microsoft.com/fwlink/?LinkId=229318

答案 6 :(得分:2)

如果使用 .NET Core .NET Standard

使用:

  

管理NuGet软件包。

Use Manage NuGet Packages

代替:

  

添加参考...

Don't use Add Reference

答案 7 :(得分:1)

遇到同一问题时,我就此主题寻求帮助。

尽管以下内容可能不是2012年最初提出的问题的答案,但对于遇到此问题的人来说可能是一个解决方案。

一种解决方法是检查项目在解决方案中的位置。事实证明,对于我的实例(我正在尝试安装NuGet软件包,但没有这样做,并且出现了列出的错误),尽管在解决方案资源管理器中显示了我的项目文件,但没有包含在解决方案目录中。我从目录中删除了该项目,并重新添加了该项目,但这一次是在正确的位置。

答案 8 :(得分:0)

如果您尝试将visual studio从vs2008更新为vs2010。你的应用程序使用框架3.5(你不想升级它),也使用WCF RIA服务BETA ......我有坏消息......你必须升级到WCF RIA Services v1(BETA不适用于vs2010 )...并且由于这个......你还必须安装Silverlight 4 +升级到框架4.0

看到这个: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html

答案 9 :(得分:0)

This error occurs when the reference to the "System.dll" got removed.Solution to the problem is very simple add the reference to "System.dll".The dll is normally available in the following location
"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" .Add the reference your problem will get solved .

答案 10 :(得分:0)

我从Silverlight 4升级到Silverlight 5然后我遇到了这个问题。虽然我在项目中的“引用”下引用了“System.ComponentModel.DataAnnotations”,但它有一个黄色的符号表示无法找到先前引用的程序集。事实证明,“System.ComponentModel.DataAnnotations”引用的属性指示“Specific Version = True”,当我将其更改为“Specific Version = False”时,它修复了该问题。右键单击“References”下的“System.ComponentModel.DataAnnotations”程序集,然后从上下文菜单中选择“Properties”。检查“特定版本=假”的属性值。

它必须引用升级到Silverlight 5后不再可用的旧Silverlight 4程序集。

答案 11 :(得分:0)

System.ComponentModel.DataAnnotations包含在它自己的程序集中,因此您需要确保引用它。只是简单地说:

1)。右键单击Soloution并选择添加。

2)。从列表中选择参考。

3)。搜索" System.ComponentModel.DataAnnotation"并勾选左侧的复选框,然后按确定。

完成工作,不应该有任何推荐错误。

答案 12 :(得分:0)

我也有这个问题。 当我添加与System相同的命名空间时,这是非常愚蠢的。我尝试删除所有引用,但它没有解决。我使用" global :: System.ComponentModel",它也可以正常工作。 当我删除我的命名空间时,此问题已得到解决。

答案 13 :(得分:0)

对于 Visual Studio 2019 中的 .Net Core,试试这个。 see VS suggestion

它对我有用,希望它也对你有用。

答案 14 :(得分:-6)

我有同样的问题,我通过以下方式解决了这个问题。

右键单击页面,选择“属性”。在构建操作中选择内容。

希望此解决方案可以为您提供帮助。