33

最近、MSDN から Visual Studio 2012 RTM Ultimate にアップグレードしました。アプリでデータベースを構築するために EF Code First Migrations を使用しています。最近、新しいエンティティを追加したので、その移行を足場にしたいと考えています。

これを行うには、VS で [パッケージ管理コンソール] ウィンドウを開き、add-migration "some name here". これにより、データベースが最後に更新されてからの変更が足場になります。


問題

この問題は VS 2012 RC では発生しませんでした

私が直面している問題は、ソリューションに複数のプロジェクトがあるにもかかわらず、パッケージ マネージャー コンソールの [既定のプロジェクト] ドロップダウンに値が入力されていないことです。上記のコマンドを入力したときに使用される既定のプロジェクトは、間違ったプロジェクトです (私の移行は別のプロジェクトにあります)。これを行うと、次のエラーが表示されます。

アセンブリ 'ProjectA' に移行構成の種類が見つかりませんでした。(Visual Studio では、パッケージ マネージャー コンソールから Enable-Migrations コマンドを使用して移行構成を追加できます)。

Visual Studio 2012 パッケージ マネージャー コンソール


私が試したこと

正しいプロジェクト (ProjectB) をスタートアップ プロジェクトとして設定しようとしましたが、次のエラーが発生しました。

アセンブリ 'ProjectA' を読み込めませんでした。(Visual Studio 内で Code First Migrations を使用している場合、これは、ソリューションのスタートアップ プロジェクトが移行を含むプロジェクトを参照していない場合に発生する可能性があります。ソリューションのスタートアップ プロジェクトを変更するか、-StartUpProjectName パラメーターを使用できます。)


質問

どのプロジェクトの移行を追加するかを手動で指定したり、既定のプロジェクトのドロップダウンを強制的に入力したりするにはどうすればよいですか?

4

10 に答える 10

20

VS 2015 では、IDE を再起動したところ、ドロップダウンが再び入力されました。

于 2016-05-16T13:57:17.090 に答える
17

以下を使用して、プロジェクトを手動で指定することができました。

add-migration "Locations" -StartupProjectName "ProjectA" -ProjectName "ProjectB"

このコマンドのドキュメントはまばらなので、これが起こっていると私が想定していることです。

  1. -StartupProjectNameデータベース構成が保存されているプロジェクトを指定します(私の場合はMVC4プロジェクト)
  2. -ProjectName移行の足場となるプロジェクトを指定します。

この質問をテストしたため、アプリでスタートアッププロジェクトとして設定しましたが、VSで正しいプロジェクトがスタートアッププロジェクトとして設定されている場合ProjectBは省略できると思います。-StartupProjectName

于 2012-08-20T03:18:31.590 に答える
4

IDE を閉じて、もう一度開くと解決する場合があります。それは私のVS2015で動作しました

于 2017-12-14T03:47:16.630 に答える