2

先史時代:

簡単な ASP.NET MVC3 アプリケーションがあります。プロジェクト ファイルで、MVC のビューの構築を有効にしました。

<MvcBuildViews>True</MvcBuildViews>

また、Entity Framework 4.0 を使用しています。System.Data.Entityそして、アセンブリへの参照を Web プロジェクトに追加しました。(はい、これは UI でデータ アクセス レイヤーを使用するのに適していないことはわかっています。これはテスト専用です)。プロジェクトファイルでは次のようになります。

<Reference Include="System.Data.Entity" />

次に、ビュー (Razor エンジン) で ObjectContext クラスを使用しようとしましたが、次のエラー メッセージが表示されました。

errorCS0012: The type 'System.Data.Objects.ObjectContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

私の別のプロジェクト ファイルでは、System.Data.Entity が別の方法で参照されていることがわかりました。

<Reference Include="System.Data.Entity" >
    <Private>True</Private>
</Reference>

<Private>True</Private>次に、子要素を使用してプロジェクト ファイル (参照セクション) を変更したところ、問題は解決しました。

では、<Private>True</Private>ビルド プロセスにどのような影響を与えるのでしょうか。

4

3 に答える 3

1

MvcBuildViews は msbuild を使用してビューをコンパイルしています。Visual studio と msbuild にはいくつかの違いがあるようです。

<Private>True</Private>ビジュアルスタジオからローカルにコピーするのと同じです。

于 2012-06-15T16:15:15.893 に答える
0

実際、この解決策は私のために働いた

  • ソリューション エクスプローラーで [参照] を右クリックし、右クリック メニューから [参照の追加] を選択します。

  • [参照マネージャー] ダイアログ ボックスが表示されます。

  • まだ選択されていない場合は、ダイアログ ボックスのリストから System.Data.Entity を選択します。アイテムの横にあるチェックボックスが選択されていることを確認します。

  • [OK] をクリックします。
于 2016-08-03T16:45:54.760 に答える