Was ist das richtige format für das Ausführen von Entity Framework migrate.exe Werkzeug ohne einen Web - /App.config?
Wir haben vor kurzem eingeschaltet, um Entity-Framework-Daten-Migrationen und ich arbeite an ein paar build-Automatisierung Skripte für unsere MVC-app. Ich kann die erfolgreiche Ausführung der Migrationen von unserem build-server mit dem migrate.exe Werkzeug 4.3 wenn ich eine Web.config zeigen Sie es an. Der Befehl sieht etwa so aus:
ProjectName\packages\EntityFramework.4.3.1\tools\migrate.exe MyAssembly
/startupdirectory:ProjectName\bin\Debug
/startupconfigurationfile:ProjectName\Web.config
/verbose
Jedoch aus verschiedenen Gründen möchte ich vermeiden Sie die Verwendung der Web.config und geben Sie nur in die richtige connection string in der Zeit der migration:
ProjectName\packages\EntityFramework.4.3.1\tools\migrate.exe MyAssembly
/startupdirectory:ProjectName\bin\Debug
/connectionString:"Data Source=awesomeserver;Initial Catalog=awesomedatabase;User Id=funkyuser;Password=crazypassword"
/verbose
Funktioniert das nicht. Schlimmer noch, es stürzt ab migrate.exe mit einer NullReferenceException. Der connection-string ist identisch zu dem, was wir in unserer Web.config.
Jemand erlebt? Ist mein connection string format falsch? Bug?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, wir haben es geschafft. Wenn man ohne das Web.config, die connectionProviderName parameter muss übergeben werden, in:
Habe ich bestätigt, dass dies funktioniert.
Ich habe noch eine Lösung zu finden, die tatsächlich funktioniert, ohne Angabe der web - /app.config-Datei. Siehe unten.
Allerdings, wenn Sie akzeptieren kann, die Bereitstellung eines web - /app.config und überschreiben Sie die Verbindungszeichenfolge als Kommandozeilen-Parameter, dann sind die folgenden arbeiten mit dem Entity Framework 5.0 von nuget und .NET 4.5. Sollte auch für .NET 4.0 mit der dokumentierte workarounds.
Beispiel Ordner-Struktur:
run_migration.bat:
Ende der Lösung.
Weglassen der Konfigurationsdatei:
Wenn Sie versuchen das weglassen der Konfigurationsdatei, bekam ich immer folgende exception egal was ich versucht habe. Ich habe nicht versucht, EF, 4.3, so vermute ich, dass sich das Verhalten verändert zwischen 4.3 und 5.0.