13

私はこれに対する答えを見つけることができず、週末中ずっとインターネットを探し回っていたので、あなたが私を助けてくれることを望んでいました.

Visual Studio 2012 を使用しているときに、新しい MVC4 Web アプリケーション プロジェクトを作成すると、コンパイル エラーが発生します。

これが私の問題です:

  1. Visual Studio 2012 を使用して新しい MVC4 Web アプリケーションを作成し、[インターネット アプリケーション] を選択して RAZOR エンジンを使用するように設定します。

  2. [アプリケーション プロパティ] に移動し、[アプリケーション] タブで [ターゲット フレームワーク] を .NET Framework 4.5 から .NET Framework 4 に変更します。

  3. ビルドで次のエラーが発生します。

    エラー 1 タイプ名 'TableAttribute' が見つかりませんでした。この型は、アセンブリ 'System.ComponentModel.DataAnnotations、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' に転送されました。そのアセンブリへの参照を追加することを検討してください。c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 21 6 MvcApplication1

    エラー 2 型または名前空間名 'Table' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 21 6 MvcApplication1

    エラー 3 型または名前空間名 'DatabaseGeneratedAttributeAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 25 10 MvcApplication1

    エラー 4 タイプ名 'DatabaseGeneratedAttribute' が見つかりませんでした。この型は、アセンブリ 'System.ComponentModel.DataAnnotations、Version=4.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' に転送されました。そのアセンブリへの参照を追加することを検討してください。c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels.cs 25 10 MvcApplication1

    エラー 5 型または名前空間名 'CompareAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 54 10 MvcApplication1

    エラー 6 タイプまたは名前空間名 'Compare' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 54 10 MvcApplication1

    エラー 7 型または名前空間名 'CompareAttribute' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 87 10 MvcApplication1

    エラー 8 タイプまたは名前空間名 'Compare' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) c:\users\saad\documents\visual studio 2012\Projects\MvcApplication1\MvcApplication1\Models\AccountModels. cs 87 10 MvcApplication1

4

3 に答える 3

26

EntityFramework を再インストールするだけです。

  1. パッケージ マネージャー コンソールに移動
  2. アンインストール パッケージ エンティティ フレームワーク
  3. インストール パッケージ エンティティ フレームワーク

つまり、エラーが消えるはずです。

于 2013-01-16T09:47:39.273 に答える
7

実際、これは MVC4 テンプレート プロジェクトの問題ではなく、ターゲットの .Net Framework を変更することの問題です。

VS2012 で新しい MVC4 プロジェクトを作成すると、(デフォルトで) .Net 4.5 が参照されます。すべてのファイルは、このバージョンに基づいて生成されます。AccountModel はSystem.ComponentModel.DataAnnotations( TableAttributeDatabaseGeneratedAttribute、 ...からの新しい属性を使用します。

フレームワーク バージョンを再ターゲットしても、参照が変更されるだけで、ソース コードには影響しません。4.5 フレームワークの属性は削除されません。

.Net 4.0 で MVC4 プロジェクトが必要な場合は、次のことができます。

  • AccountModel から .net 4.5 属性を削除しました
  • 必要ない場合は AccountMode を削除します
  • 新しいプロジェクトの作成ウィザードで .NET 4.0 を選択します。
于 2012-10-01T11:52:33.403 に答える