web-dev-qa-db-ja.com

System.ComponentModel.DataAnnotationsを参照できないのはなぜですか?

WPFプロジェクトでDataAnnotationsを使用して、次のように文字列の最大長を指定しようとしています。

using System.ComponentModel.DataAnnotations;

ただし、エラーが発生します

型または名前空間名「DataAnnotations」は、名前空間「System.ComponentModel」に存在しません(アセンブリ参照がありませんか?)

この名前空間にDataAnnotationsdoesが存在する他の例を見てきました。 C#4を使用しています。これを使用できない理由はありますか?修正するにはどうすればよいですか?

83
DaveDev

この名前空間が定義されているアセンブリを参照する必要があります(Visual Studioテンプレートでは既定では参照されません)。参照マネージャーを開き、System.ComponentModel.DataAnnotationsアセンブリへの参照を追加します(ソリューションエクスプローラー->参照の追加-> .NETタブの選択->リストからSystem.ComponentModel.DataAnnotationsを選択)

147
Hari

参照System.ComponentModel.DataAnnotationsへ

コードファイルでSystem.ComponentModel.DataAnnotationsを使用する次のようなファイルの先頭に:

using System.ComponentModel.DataAnnotations;

ソリューションエクスプローラーでプロジェクトを右クリックして、プロジェクトに.NET参照を追加します。

enter image description here

お役に立てれば!この質問は私を助けてくれました。

9
Catto

私も同じ問題を抱えていましたが、言及されたリファレンスがなかったプロジェクトの1つにリファレンスを追加することで解決しました。ソリューションに2〜3個のプロジェクトがある場合は、この参照を他のプロジェクトに追加して確認してください。

4
Ashish Sahu

参照に含まれていない場合(私が持っていなかったように)、NuGet System.ComponentModel.Annotationsを追加してアセンブリを取得し、エラーを解決することもできます。 (この回答はまだエラーのGoogleのトップであるため、ここに追加します)

4
Rodger

(1)の以下のバージョンでは、Silverlight 5のSystem.ComponentModel.DataAnnotationsを参照できないことがわかりました。 Silverlight 5アセンブリは.NETアセンブリを使用できないことがわかりました。「Silverlightランタイムに対してビルドされていないため、System.ComponentModel.DataAnnotationsへの参照を追加できません。」というエラーが表示されます。下記の(2)にあるSilverlight 5パッケージをインストールしてください。これが失敗した場合、この投稿を更新します。

[更新:失敗しました。 Silverlight 5に関連するすべてをインストールしましたが、Silverlightバージョンの.dllアセンブリSystem.ComponentModel.DataAnnotationsがありません。残念な。更新II:Visual Studio 2008または2010用のSilverlight開発者キットの以前のインストールからこの名前の古い.dllを見つけました。このファイルを追加し、「動作」しているようです。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

インストール済みバージョン:Professional

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

2
PaulDecember

プロジェクトにFrameWorkバージョン4.5以上を使用して問題を解決します。このネームスペースは4.5以上であるためです。

2
user2090762

同じ問題に出くわしたときに、このトピックに関するヘルプを検索しました。

以下は2012年に最初に尋ねられた質問に対する答えではないかもしれませんが、このスレッドに出くわした人たちの解決策かもしれません。

方法これを解決するには、ソリューション内のプロジェクトの場所を確認します。私のインスタンスでは(NuGetパッケージをインストールしようとしていましたが、インストールされず、リストされたエラーが発生しました)、プロジェクトファイルがソリューションエクスプローラーに表示されていてもソリューションディレクトリに含まれていませんでした。スコープ外のディレクトリからプロジェクトを削除し、プロジェクトを再度追加しましたが、今回は正しい場所にあります。

1

Visual Studioをvs2008からvs2010に更新しようとした場合。また、アプリはフレームワーク3.5を使用し(アップグレードしない)、WCF RIAサービスベータ版も使用しました...悪いニュースがあります... WCF RIAサービスv1にアップグレードする必要があります(ベータ版はvs2010では動作しません) )...そしてこれにより... Silverlight 4をインストールし、フレームワーク4.0にアップグレードする必要があります

これを参照してください: http://blog.nappisite.com/2010/05/updating-visual-studio-2008net-35-ria.html

0
Fernando Torres
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 .
0
Ankit Agrawal

System.ComponentModel.DataAnnotationsは独自のアセンブリに含まれているため、参照されていることを確認する必要があります。単純に:

1)。 Soloutionを右クリックして、追加を選択します。

2)。リストから参照を選択します。

3)。 「System.ComponentModel.DataAnnotation」を検索し、左側のチェックボックスをオンにして[OK]を押します。

ジョブが完了しました。参照エラーはありません。

0

私もこの問題を抱えています。 Systemと同じ名前空間を追加すると、それは非常に愚かです。すべての参照を削除しようとしましたが、解決されません。 「global :: System.ComponentModel」を使用していますが、同様に機能しています。名前空間を削除すると、この問題は解決されました。

0
Henry

Silverlight 4からSilverlight 5にアップグレードした後、この問題が発生していました。プロジェクトの「参照」の下に「System.ComponentModel.DataAnnotations」への参照がありましたが、黄色の降伏記号があり、以前参照されたアセンブリが見つからなかったことを示しています。 「System.ComponentModel.DataAnnotations」リファレンスのプロパティが「Specific Version = True」を示していたことが判明しました。これを「Specific Version = False」に変更すると、問題が修正されました。 「参照」の下の「System.ComponentModel.DataAnnotations」アセンブリを右クリックし、コンテキストメニューから「プロパティ」を選択します。 「特定のバージョン= False」のプロパティ値を確認します。

Silverlight 5へのアップグレード後に使用できなくなった古いSilverlight 4アセンブリを参照している必要があります。

0
cesiumdeth