13

Visual Studio Web Express 2012でコードファーストを有効にしようとしています。これまで読んだ内容から、パッケージマネージャーコンソールとコマンドEnable-Migrationsを使用する必要があります。これを行うと、次のエラーが発生します。

Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///E:\Working\wingtoysdl\C#\packages\EntityFramework.5
.0.0\tools\EntityFramework.PowerShell.Utility.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)"
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:398 char:62
+     $utilityAssembly = [System.Reflection.Assembly]::LoadFrom <<<< ((Join-Path $toolsPath EntityFramework.PowerShell.Utility.dll))
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

You cannot call a method on a null-valued expression.
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:399 char:50
+     $dispatcher = $utilityAssembly.CreateInstance <<<< (
    + CategoryInfo          : InvalidOperation: (CreateInstance:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or assembly 'file:///E:\Working\wingtoysdl\C#\packages\EntityF
ramework.5.0.0\tools\EntityFramework.PowerShell.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515
)"
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:431 char:31
+     $domain.CreateInstanceFrom <<<< (
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

ご覧のとおり、これは非常に大きなエラーであり、グーグルやトラブルシューティングが非常に困難です。誰かが私がこれを修正する方法について何かアイデアがありますか?

4

7 に答える 7

29

私は今、この問題に2回遭遇しました。どちらの場合も、エンティティ フレームワークをアンインストールしてから、ソリューション内のプロジェクトごとに再インストールする必要がありました。2回目にこれを行ったときに理解するのに少し時間がかかったのは、Entity Frameworkを再インストールした後、Visual Studio(2012)を再起動する必要があったことです(または、「ファイルまたはアセンブリを読み込めませんでした」 [パス]\packages\EntityFramework.5 .0.0\tools\EntityFramework.PowerShell.Utility.dll'" エラー)。

パッケージ マネージャー コンソールにアクセスするには、[ツール] -> [ライブラリ パッケージ マネージャー] -> [パッケージ マネージャー コンソール] に移動します。

パッケージ マネージャーで、各プロジェクトの Entity Framework をアンインストールします (パッケージ マネージャー コンソールの上部にある [既定のプロジェクト] ドロップダウンから各プロジェクトを選択しました):
Uninstall-Package EntityFramework -Force

次に、プロジェクトごとにインストールします:
Install-Package EntityFramework

この時点で、Enable-Migrations コマンドを実行しようとしても、Visual Studio を閉じて再起動するまでエラーが発生しました。その後、Update-Database コマンドと同様に成功しました (Migrations.Configuration ファイルで AutomaticMigrationsEnabled を true に設定した後)。

于 2013-02-21T04:14:00.640 に答える
2

私の問題は、ソリューションの一部のプロジェクトが他のプロジェクトと同じバージョンに更新されていないことが原因でした。すべてが同じ EF バージョンであることを確認すると、機能し始めました。

于 2019-10-15T17:58:05.787 に答える
1

私も同じ問題に遭遇していたので、問題が発生する可能性があるかどうかを確認し始めたところ、エンティティフレームワークの2つの異なるバージョンが何らかの形でインストールされていることがわかりました.

確認するには、[ツール] > [NuGet パッケージ マネージャー ソリューション] > [NuGet パッケージの管理] > [統合] に移動します。

以下の画像をご覧ください。

ここに画像の説明を入力

この図では、異なるバージョンがインストールされていることがはっきりとわかる場合があります

ここに画像の説明を入力

この図では、Entity Framework を 6.2.0 から 6.4.4 に更新することに同意します。

于 2021-04-05T11:20:25.810 に答える