質問: サーバーに新しい.NET Coreアプリケーションをデプロイしています。プロジェクトは "code-first"メソッドを使用して作成されたので、EntityFramework移行を実行しようとしています。 実行するコマンドは > dotnet efデータベースの更新 > > 移行は問題なくVisual Studioを使用してローカルで機能しますが、サーバー上ではエラーが発生します。 > `Microsoft.EntityFrameworkCore.Tools.DotNet`パッケージのバージョンを解決できませんでした。 > > DotNetの私の開発マシンのバージョンは1.0.0です 私のDotNetサーバーのバージョンは1.0.1です。 私のプロジェクトは.csprojファイルを使用します(project.jsonではなく、使用されなくなりました)。 csprojファイルへの参照を追加しましたが、バージョンにかかわらず上記のエラーが発生します。 ``` ``` **更新** 基本的に私はNUGETを使ってコマンドラインからMicrosoft.EntityFrameworkCore.Tools.DotNetをインストールしようとしました: > C:¥Program Files(x86)¥Jenkins¥workspace¥api.XXX.com¥XXXProject>インストールMicrosoft.EntityFrameworkCore.Tools.DotNet > > それから私は以下を受け取ります: > 警告:インストールに失敗しました。ロールバックしています...小さなアクションの実行に13.44秒かかりましたパッケージ 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0'のパッケージタイプは 'D otnetCliTool'です。これはプロジェクト 'C:\ Program Files(x86)\ Jenkins \でサポートされていませんw orkspace \ api.XXX.com \ XXXProject'.` > > それから、dotnet efコマンドを実行すると、次のようになります。 > C:¥Program Files(x86)¥Jenkins¥workspace¥api.desully.com¥deSullyAPI_Core> dotnet ef updateデータベース > > `Microsoft.EntityFrameworkCore.Tools.DotNet`パッケージのバージョンを再解決できませんでした。 > > 更新#2 私の開発用マシンには、サーバー上のバージョンとは異なるSDKバージョンがあることに気付きました。 開発ボックス![ここに画像の説明を入力してください](https://i.stack.imgur.com/ZtUKA.png) プロダクションボックス![ここに画像の説明を入力してください](https://i.stack.imgur.com/I02vk.png) 問題は、1.0.1にMicrosoft.EntityFrameworkCore.Tools.DotNetが含まれていないことです。古いバージョンがするのは不思議ではないですか? **アップデート3** だからfyi - (私のサーバーにインストールされていないようだったので)私はSDKの1.0.0バージョンをダウンロードしようとするためにマイクロソフトサイトに行きました。残念なことに、MSサイトは私に1.0.1バージョン(私が必要とするEFのものを含んでいませんか?)を強制的にフィードするようです。 私は自分の開発用ボックスから本番サーバーに1.0.0ディレクトリをコピーしようとしましたが、それもうまくいかないようでした。私はここで何が足りないのですか?
回答: `Microsoft.EntityFrameworkCore.Tools.DotNet` `1.0.1`バージョンはありません(執筆時点で)。パッケージを復元するには、 `Version="1.0.0"`を設定する必要があります。 利用可能なバージョンはNuGetにリストされています。 更新: CLIツールを使用するには、既に持っているように``項目を追加する必要があります。 その後、プロジェクトのディレクトリで`dotnet restore`を呼び出してパッケージをローカルキャッシュにダウンロードすると、ツールが使用可能になり、 `dotnet ef`を使用できるようになります。