ソリューションのパッケージ マネージャー コンソールで Update-Database を実行すると、次のエラーが表示されます。
PM> Update-Database
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.RuntimeModule.GetTypes()
at System.Reflection.Assembly.GetTypes()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindType[TBase](String typeName, Func`2 filter, Func`2 noType, Func`3 multipleTypes, Func`3 noTypeWithName, Func`3 multipleTypesWithName)
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindConfiguration()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator()
at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
プログラムで更新を実行し、その例外をキャッチすることで、より多くの情報を取得できる場合があるという他の同様のスタックオーバーフローの議論を読んだので、これを試しました:
static void Main(string[] args)
{
//https://stackoverflow.com/questions/15774247/how-to-debug-entity-framework-migration-loaderexceptions
DbMigrator migrator = new DbMigrator(new Configuration());
migrator.Update();
}
上記のコードは、実際には問題なく更新を正常に実行します (アプリケーションの初期化時に Web ブラウザーによって実行された場合の移行も同様です) が、パッケージ マネージャーは同じ Update-Database コマンドで同じエラーで失敗します。スタートアップ プロジェクト、デフォルト プロジェクト、コピー ローカル設定の参照、ibmmx ファイルの再生成、データベースの復元、ビジュアル スタジオ/OS の複数回の再起動を確認しました。また、powershell を介して例外情報にアクセスしようとしましたが、何も見つかりませんでした。パッケージ マネージャーの操作が失敗する理由に関する詳細情報を取得する方法を知っている人はいますか?
同じ基礎となるデータベース状態 (両方とも localhost 上に異なるデータベース サーバー) を使用したこの同じセットアップは、別の開発マシンでも問題なく動作するため、私のセットアップまたはインストールに固有のもののようです。他に知っておくべき「落とし穴」はありますか?
ありがとう。
更新: パッケージ マネージャーの外部で動作する移行については、早すぎたかもしれません。動作中の開発マシンで作成し、ローカル マシンにプルしたところ、Web ブラウザーまたはパッケージ マネージャーでアプリケーションを初期化しても機能しないことがわかりました。