Visual StudioのMacプレビューエンティティフレームワークSQLiteの移行の追加

.net-core entity-framework-core macos visual-studio

質問

私はVisual Studio for Mac(OSX 10.12.1)を今日インストールしました。私はかなり広範囲にダイビングしてきました。

私は、EntityFrameworkCore(1.1.0)をSQLiteで実行するようにしたかったのです。

だから私は新しいコンソールアプリケーションの.NETコアを作成し、いくつかの問題は、すべての必要なナゲットパッケージを追加することができました。何とかVisual Studioは依存関係をダウンロードできなかったので、すべての依存関係を手動でダウンロードする必要がありました。 (これはおそらく問題を解決します: .Net Core 1.1.0 NuGetパッケージはVisual Studioにインストールできません。Macはこれをまだテストしていません)。

この記事( https://docs.microsoft.com/en-us/ef/core/get-started/netcore/new-db-sqlite )に記載されているように、移行を追加したいのですが、 IDEの必要なコマンドラインツール。私はここで何かを逃しましたか?

その後、.NET Core CLIを使用して手動で実行しました。コンソール。 ( https://www.microsoft.com/net/core#macos )。しかし、私がdotnet ef migrations add initを実行してdotnet ef migrations add initdotnet ef migrations add initと、次のエラーが発生します。

コマンド "dotnet-ef"と一致する実行ファイルが見つかりませんでした

誰でもこれを成功させることができましたか?

受け入れられた回答

Visual Studio for Mac 2017(2017年4月)は、 Microsoft.EntityFrameworkCore.Tools.DotNetへの参照の追加をサポートしておらず、エラーを返します。

Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' has a package type 'DotnetCliTool' that is not supported by project 'MacMvc'.

マニュアルでファイルを編集し、 csprojファイルに直接参照を追加することができます( 文書化されているcsproj 。これをcsprojファイルに追加します:

  <ItemGroup>
     <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>

次に、 dotnet restoreを実行してパッケージをインストールします。その後、 dotnet ef migrations add NameOfMigrationを使用して、ドキュメントごとにdotnet ef migrations add NameOfMigrationdotnet ef migrations add NameOfMigration dotnet ef database updateスクリプトをdotnet ef migrations add NameOfMigrationすることができます。

注意:コマンドを実行するときは、プロジェクトディレクトリにいなければなりません。

また、Mac用のVS 2017の提案を参照してください:


人気のある回答

VS for Macを使用して、以下の行を.csprojに追加すると、移行が正常に動作します。

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild2-final" />

パッケージはVSから.csprojを保存して自動的に復元されます。

ターミナルを介して "dotnet ef"コマンドを実行するには、プロジェクトディレクトリにある必要があります.slnファイルがあるディレクトリからではなく、下位レベルから取得する必要があります。

注:Tools.DotNetのv1.0.1での同じトリックはうまくいかず、理由はわかりません。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ