2017-04-12 10 views
6

Ich stelle eine neue .NET Core-Anwendung auf meinem Server bereit. Ich versuche, die EntityFramework-Migration auszuführen, da das Projekt mit der Methode "Code zuerst" erstellt wurde.Version für Paket `Microsoft.EntityFrameworkCore.Tools.DotNet` konnte nicht aufgelöst werden

Der Befehl ist ausgeführt werden soll

Dotnet ef Datenbank-Update

Migrationen arbeiten lokal mit Visual Studio, ohne Frage, aber auf dem Server, ich die Fehlermeldung;

Version für Paket Microsoft.EntityFrameworkCore.Tools.DotNet konnte nicht aufgelöst werden.

Die Version auf meiner Entwicklung Maschine von DotNet ist 1.0.0

Die Version auf meinem Server von DotNet ist 1.0.1

Mein Projekt die CSPROJ-Datei (nicht project.json verwendet, welches nicht mehr benutzt wird, scheint es).

Ich habe den Verweis auf die csproj-Datei hinzugefügt, aber unabhängig von der Version bekomme ich immer noch den obigen Fehler.

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

aktualisieren

Im Grunde habe ich versucht, die Microsoft.EntityFrameworkCore.Tools.DotNet von der Kommandozeile Installation NuGet mit:

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

Dann erhalte ich folgendes:

WARNUNG: Installation fehlgeschlagen. Rollback ... Ausführung von nuget-Aktionen dauerte 13,44 Sek. Das Paket 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0' hat eine Paketart 'D otnetCliTool', die nicht vom Projekt 'C: \ Programme (x86) unterstützt wird. \ Jenkins \ w orkspace \ api.XXX.com \ XXXProject'.`

Dann, wenn ich das dotnet ef Befehl ausführen, bekomme ich diese:

C: \ Program Files (x86) \ Jenkins \ workspace \ api.desully.com \ deSullyAPI_Core> Updatedatenbank dotnet ef

Version für Paket Microsoft.EntityFrameworkCore.Tools.DotNet konnte nicht aufgelöst werden.

Update # 2

Ich bemerkte, dass meine Dev-Maschine verschiedene SDK-Versionen in ihm als die Version auf dem Server

Dev Box enter image description here

Produktion Box enter image description here

hat

Ich nehme an, dass das Problem ist, dass 1.0.1 Microsoft.EntityFramework nicht hat Core.Tools.DotNet drin? Ist es nicht seltsam, dass die ältere Version das tut?

Update 3

So FYI - Ich ging in die Microsoft Site zu versuchen, die 1.0.0 Version des SDK zum Download (da es nicht auf meinem Server installiert zu sein schien). Leider scheint mir die MS-Seite zu zwingen, mir die 1.0.1-Version zu geben (die nicht die EF-Sachen enthält, die ich brauche?).

Ich habe versucht, das 1.0.0 Verzeichnis von meinem Entwicklerfeld auf den Produktionsserver zu kopieren, aber das schien auch nicht zu funktionieren. Was fehlt mir hier?

Antwort

19

Es gibt keine 1.0.1 Version von Microsoft.EntityFrameworkCore.Tools.DotNet (zum Zeitpunkt des Schreibens). Sie müssen Version="1.0.0" festlegen, um das Paket wiederherzustellen.

Die verfügbaren Versionen sind listed on NuGet.

Update:

Um CLI-Tools zu verwenden, müssen Sie zuerst <DotNetCliToolReference> Elemente hinzufügen, wie Sie bereits.

Dann rufen Sie dotnet restore im Verzeichnis des Projekts, um die Pakete in Ihren lokalen Cache herunterladen, dann wird das Tool verwendbar und dotnet ef kann verwendet werden.

+0

Ich habe gerade versucht verschiedene Zahlen drin - aber auch das gleiche Problem für 1.0.0. – footose

+0

Dann geben Sie bitte weitere Details an: Welche Werkzeuge/Befehle werden ausgeführt? Was ist die genaue Fehlermeldung? usw. –

+0

aktualisierter Thread. Entschuldigung, etwas neu hier. – footose

Verwandte Themen