IT story

System.ComponentModel.DataAnnotations를 참조 할 수없는 이유는 무엇입니까?

hot-time 2020. 9. 18. 19:24
반응형

System.ComponentModel.DataAnnotations를 참조 할 수없는 이유는 무엇입니까?


내 WPF 프로젝트에서 DataAnnotations를 사용하여 다음과 같이 최대 문자열 길이를 지정하려고합니다.

using System.ComponentModel.DataAnnotations;

그러나 오류가 발생합니다.

형식 또는 네임 스페이스 이름 'DataAnnotations'가 네임 스페이스 'System.ComponentModel'에 없습니다 (어셈블리 참조가 누락 되었습니까?).

나는 다른 예를 본 적이 DataAnnotations 않습니다 이 네임 스페이스에 존재합니다. C # 4를 사용하고 있습니다. 이것을 사용할 수없는 이유가 있습니까? 이 문제를 해결하려면 어떻게해야합니까?


이 네임 스페이스가 정의 된 어셈블리를 참조해야합니다 (기본적으로 Visual Studio 템플릿에서 참조되지 않음). 참조 관리자를 열고 System.ComponentModel.DataAnnotations 어셈블리에 대한 참조를 추가합니다 (솔루션 탐색기-> 참조 추가-> .Net 탭 선택-> 목록에서 System.ComponentModel.DataAnnotations 선택).


System.ComponentModel.DataAnnotations를 참조하려면

코드 파일에서 Using System.ComponentModel.DataAnnotations; 다음과 같은 파일 맨 위에 있습니다.

using System.ComponentModel.DataAnnotations;

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하여 프로젝트에 .NET 참조를 추가합니다.

여기에 이미지 설명 입력

도움이 되었기를 바랍니다! 이 질문이 도움이되었습니다.


참조에없는 경우 (예 : 그렇지 않은 경우) NuGet System.ComponentModel.Annotations를 추가하여 어셈블리를 가져오고 오류를 해결할 수도 있습니다. (이 답변은 여전히 ​​오류에 대한 Google 상단으로 여기에 추가)


나는 또한 같은 문제가 있었고 언급 된 참조가없는 내 프로젝트 중 하나에 참조를 추가하여 해결했습니다. 솔루션에 2-3 개의 프로젝트가있는 경우이 참조를 다른 프로젝트에 추가하여 확인하십시오.


프로젝트에 대해 FrameWork 버전 4.5 이상을 사용하면 문제가 해결되었습니다.이 네임 스페이스는 4.5 이상이기 때문입니다.


I found that I cannot reference System.ComponentModel.DataAnnotations from Silverlight 5 with the below version at (1). I found that Silverlight 5 assemblies cannot use .NET assemblies, it gives the error "You can't add a reference to System.ComponentModel.DataAnnotations as it was not built against the Silverlight runtime. ..." I plan to workaround this by hopefully installing the Silverlight 5 package found at (2) below. If this fails I will update this post.

[UPDATE: it failed. I installed everything relating to Silverlight 5 and I don't have the Silverlight version of the .dll assembly System.ComponentModel.DataAnnotations . Too bad. UPDATE II: I found an old .dll having this name from a previous installation of Silverlight developer's kit for Visual Studio 2008 or 2010. I added this file and it seems to 'work', in that IntelliSense is now recognizing attributes on class members, such as [Display(Name = "My Property Name")]. Whether or not this works for everything else in this .dll I don't know.]

(1)

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

Installed Version: Professional

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


I searched for help on this topic as I came across the same issue.

Although the following may not be the Answer to the question asked originally in 2012 it may be a solution for those who come across this thread.

A way to solve this is to check where your project is within the solution. It turns out for my instance (I was trying to install a NuGet package but it wouldn't and the listed error came up) that my project file was not included within the solution directory although showing in the solution explorer. I deleted the project from the directory out of scope and re-added the project but this time within the correct location.


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 .

If you tried to update visual studio from vs2008 to vs2010. And your app uses framework 3.5 (and you don't want to upgrade it), and also used WCF RIA Services BETA... I have bad news... you MUST upgrade to WCF RIA Services v1 (BETA does not work on vs2010)... and due to this... you also have to install Silverlight 4 + upgrade to framework 4.0

See this: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html


I upgraded from Silverlight 4 to Silverlight 5 and then I was having this issue. Although I had a reference to "System.ComponentModel.DataAnnotations" under "References" in my project, it had a yellow yield sign by it that indicated the previously referenced assembly could not be found. It turned out that the properties of the "System.ComponentModel.DataAnnotations" reference indicated "Specific Version = True", when I changed this to "Specific Version = False" it fixed the issue. Right click on the "System.ComponentModel.DataAnnotations" assembly under "References" and select "Properties" from the context menu. Check that the property value for "Specific Version = False".

It must have been referencing the old Silverlight 4 assembly which was no longer available after the upgrade to Silverlight 5.


System.ComponentModel.DataAnnotations is contained in its own assembly so you need to make sure you have it refernced. Just simply:

1). Right click on Soloution and choose add.

2). Choose reference from the list.

3). Search " System.ComponentModel.DataAnnotation " and tick the check box on its left hand side and press ok.

Job done, shouldnt have any refernce errors.


I also have this problem. That is very stupid when i add a namespace the same with System. I try to remove all references, but it is not resolved. I use "global::System.ComponentModel", it is working as well. When i remove my namespace, this problem has been resolved.


If using .NET Core or .NET Standard

사용하다:

NuGet 패키지 관리 ..

NuGet 패키지 관리 사용

대신에:

참조 추가 ...

참조 추가를 사용하지 마십시오.


나는 같은 문제가 있었고 다음과 같은 방법 으로이 문제를 해결했습니다.

페이지를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다. 빌드 작업에서 콘텐츠를 선택합니다.

이 솔루션이 도움이되기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/10174420/why-cant-i-reference-system-componentmodel-dataannotations

반응형