2017-02-17 8 views
1

Ich arbeite an einem Projekt, das mit einer Version von dotnet core unter Verwendung einer Datei project.json erstellt wurde. Ich konnte Datenbankmigrationen hinzufügen und eine Datenbank mit den Befehlen dotnet ef cli in VS Code erstellen (Migrationen hinzufügen, aktualisieren usw.).Nach der Migration von .net core können keine Migrationen zur Datenbank hinzugefügt werden.

Ich habe jedoch kürzlich das Projekt mit dem Befehl dotnet migrate migriert, so dass mein Projekt jetzt eine .csproj-Datei enthält. Ich muss mehr Datenbankmigrationen hinzufügen, aber wenn ich die CLI-Befehle ausführe, erhalte ich eine Fehlermeldung, dass die Datei "project.json" nicht gefunden wurde.

Ich habe die Dokumentation online angeschaut (und im Internet gesucht) und kann nichts finden, was mir verpasst hätte. FWIW, hier sind die möglichen relevanten Pakete in meiner CSPROJ Datei:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" /> 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.0" /> 

    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.1.0-preview4-final" /> 

Antwort

3

Neue Versionen der Werkzeuge wurden für die neue Version .csproj veröffentlicht. Sie müssen Ihre Version Microsoft.EntityFrameworkCore.Tools.DotNet von 1.1.0-preview4-final zu 1.0.0-msbuild3-final ändern.

Sie können die verschiedenen neuesten Versionen here auf Nuget sehen.

+0

Wenn ich die Abhängigkeit ändere und eine Wiederherstellung durchführe, erhalte ich folgende Warnung: Die angegebene Abhängigkeit war Microsoft.EntityFrameworkCore.Tools.DotNet (> = 1.1.0-msbuild3-final), endete aber mit Microsoft.EntityFrameworkCore.Tools.DotNet 1.1. 0-Vorschau4-Finale. Oh, und ich fand [Julie Lerman's Blog] (https://www.goodreads.com/author/show/1892325.Julia_Lerman/blog), wo sie dasselbe erwähnt, was du getan hast. –

+0

Die Version ist eigentlich '1.0.0-msbuild3-final', nicht' 1.1.0-msbuild3-final'. Aktualisiere das und du solltest gut gehen - ich habe zuerst falsch gepostet, jetzt aktualisiert = D. – steamrolla

1

Wenn Sie die „Dotnet ef“ Werkzeuge brauchen nicht speziell können Sie auch die VS Powershell integrierte Version verwenden (Sollten Sie die Dotnet ef brauchen Werkzeuge vielleicht steamrolla den Beitrag unten können Ihnen helfen):

ich die folgende Paket Referenzen verwenden:

<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" /> 
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0-preview4-final" /> 

Mit diesen Referenzen setzen, ist es möglich, die EF-Werkzeuge (Add-Migration, Update-Datenbank zu verwenden, , ...) von der Package Manager-Konsole.

+0

Die 'DotNetCliToolReference' scheint für mich in Ordnung zu sein. – steamrolla

+1

Es scheint einen Unterschied zwischen Microsoft.EntityFrameworkCore.Tools.DotNet und Microsoft.EntityFrameworkCore.Tools zu geben. Die DotNet-Version ist für die "dotnet ef" -Befehle, während die DotNet-Version für die normale VS-Integration ist. Siehe: https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ – Fionn

+0

Korrigieren. Wenn Sie nach unten scrollen, um einen Blick unter "Upgrade-Tooling-Pakete" zu werfen, rufen Sie es auf und sagen, wenn Sie die 'dotnet ef'-Befehle verwenden, müssen Sie die' .DotNet'-Version verwenden. Alles, was gesagt wird, gibt es tatsächlich eine andere Sache in dieser Frage spielen: die neue '.csproj' Art und Weise, Dinge zu tun. – steamrolla

Verwandte Themen