2017-04-12 8 views
6

Je déploie une nouvelle application .NET Core sur mon serveur. J'essaie d'exécuter la migration EntityFramework, car le projet a été créé en utilisant la méthode "code-first".La version du package `Microsoft.EntityFrameworkCore.Tools.DotNet` n'a pas pu être résolue

La commande à exécuter est

dotnet mise à jour de base de données ef

travailler localement en utilisant les migrations visual studio sans problème, cependant, sur le serveur, je reçois l'erreur;

La version du package Microsoft.EntityFrameworkCore.Tools.DotNet n'a pas pu être résolue.

La version sur ma machine de développement de DotNet est

1.0.0

La version sur mon serveur de DotNet est 1.0.1

Mon projet utilise le fichier .csproj (non project.json, ce qui n'est plus utilisé semble-t-il).

J'ai ajouté la référence au fichier csproj, mais quelle que soit la version, j'obtiens toujours l'erreur ci-dessus.

<ItemGroup> 
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0" /> 
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.1" /> 
    </ItemGroup> 

Mise à jour

Fondamentalement j'ai essayé d'installer le Microsoft.EntityFrameworkCore.Tools.DotNet depuis la ligne de commande à l'aide NuGet:

C: \ Program Files (x86) \ Jenkins \ workspace \ api.XXX.com \ XXXProject> NuGet i nstall Microsoft.EntityFrameworkCore.Tools.DotNet

Ensuite, je reçois ce qui suit:

AVERTISSEMENT: L'installation a échoué. Rétablissement ... L'exécution des actions de nuget a pris 13.44 sec Le package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' a un type de package 'D otnetCliTool' qui n'est pas pris en charge par le projet 'C: \ Program Files (x86) \ Jenkins \ w orkspace \ api.XXX.com \ XXXProject'.`

Ensuite, si je lance la commande ef dotnet, je reçois ceci:

C: \ Program Files (x86) \ Jenkins \ espace de travail \ api.desully.com \ deSullyAPI_Core> dotnet base de données de mise à jour ef

La version pour le paquet Microsoft.EntityFrameworkCore.Tools.DotNet n'a pas pu être résolue.

Mise à jour # 2

J'ai remarqué que ma machine dev a différentes versions du SDK dans ce que la version sur le serveur

Dev Box enter image description here

Production Box enter image description here

Je suppose que le problème est que 1.0.1 n'a pas Microsoft.EntityFramework Core.Tools.DotNet dedans? N'est-il pas étrange que l'ancienne version fait?

Mise à jour 3

Alors FYI - je suis allé au Microsoft Site pour essayer de télécharger la version 1.0.0 du SDK (car il ne semble pas être installé sur mon serveur). Malheureusement, le site MS semble forcer me nourrir la version 1.0.1 (qui ne contient pas les trucs EF dont j'ai besoin?).

J'ai essayé de copier le répertoire 1.0.0 de ma boîte de dev au serveur de production, mais cela n'a pas semblé fonctionner. Qu'est-ce que j'oublie ici?

Répondre

19

Il n'existe pas de version 1.0.1 de Microsoft.EntityFrameworkCore.Tools.DotNet (au moment de l'écriture). Vous devez définir Version="1.0.0" afin de restaurer le package.

Les versions disponibles sont listed on NuGet.

Mise à jour:

Pour utiliser des outils CLI, vous devez d'abord ajouter <DotNetCliToolReference> les éléments que vous avez déjà.

Ensuite, vous appelez dotnet restore dans le répertoire du projet pour télécharger les packages dans votre cache local, puis l'outil devient utilisable et dotnet ef peut être utilisé.

+0

J'essayais juste d'utiliser des nombres différents - mais aussi le même problème pour 1.0.0. – footose

+0

Alors s'il vous plaît fournir plus de détails: quels outils/commandes sont exécutées? Quel est le message d'erreur exact? etc –

+0

mis à jour le fil. Désolé, légèrement nouveau ici. – footose