2012-03-06 14 views
0

私のモデルをASP.NET MVC 3アプリケーションの別のプロジェクトに移動しようとしています。すべては、私はエラーが出る一つのファイルの例外を除いて正常に動作 -プロジェクトを別のプロジェクトに移動する

型または名前空間名「比較」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足している?) タイプか

名前空間名 'CompareAttribute'が見つかりませんでした。新しいプロジェクトの参照は、元のMVCプロジェクトの参照とまったく同じですが、この1つファイルが新しいプロジェクトに移動されると、上記のエラーが発生します。

アイデアは何ですか?

+1

に関しては、私はそれがSystem.ComponentModel.DataAnnotations' 'にありますように、それは一種のようだが、それは' System.Web.Mvc'(アセンブリ/ DLL)でだと思います。おそらく、あなたはモデルクラスの 'System.Web.Mvc'への参照を望んではいけません(そうしないといけないと言っているわけではなく、おそらく積極的にしたくないということではありません)。 –

+1

なぜ、なぜモデルを別のプロジェクトに移動する必要がありますか?そうすることで何を得るのですか? – Oded

+1

私はWebプロジェクトとMobileWebプロジェクトがある場合にそれが完了したことを確認しました。どちらのプロジェクトも、ビジネスロジックなどのために同じDLLを使用しました。 –

答えて

1

CompareAttributeクラスはSystem.Web.Mvc名前空間の一部です。あなたは(ソリューションエクスプローラで - >参照)プロジェクトに参照としてそのアセンブリを持っていることを確認し、そしてまた、あなたが持っていることを確認してください。

using System.Web.Mvc; 

ソースファイルの先頭で。

MSDN Reference on the CompareAttribute Class

空間:System.Web.Mvc
アセンブリ:(System.Web.Mvc.dllで)System.Web.Mvc

+0

それは奇妙なことです。私は、私のモデルプロジェクトと私の通常のMVCプロジェクトの両方でリファレンスとしてアセンブリを持っています。また、ソースファイルにusingステートメントがあります。 MVCプロジェクトのm、odelsフォルダにファイルがあると、それは機能しますが、モデルプロジェクトに移動するとエラーになります。 –

+0

私はそれを今働いている。私はモデルプロジェクトのSystem.Web.Mvcへの参照を削除し、再度読み込んだ。 –

0

への参照を追加しますコンポーネント/名前空間を使用すると、[参照の追加]ウィンドウを拡張またはサイズ変更して、バージョン、ランタイム、パスなどの追加の列情報をすべて表示できます。上記に応答して、CompareAttributeが導入されていないMVC 3より前のSystem.Web.Mvc参照があったかもしれません。

「コンポーネント名」列をソートして、バージョン、実行時およびパスの値が異なる重複するエントリを確認してください。これは、複数の.NET Frameworkがインストールされている場合にも当てはまります。必要なものをサポートする正しいバージョンを選択してください。この場合、System.Web.Mvcバージョン3.0.0.0以上を選択すると、その後のCompareAttributeが追加されます。

種類が

関連する問題