Utilisation de la console NuGet Package Manager à L'extérieur de Visual Studio pour exécuter les Migrations du Framework Entity

Est-il de toute façon à l'ouvrir NuGet console de gestionnaire de paquets en dehors de Visual Studio ?

mon objectif est d'exécuter quelques migrations, que j'ai créées en utilisant EntityFramework.Les Migrations

en gros je veux courir Update-Database –Verbose commande dans un environnement qui n'a pas visual studio, mais qui a PowerShell 2.0 et L'outil en ligne de commande NuGet.

18
demandé sur CJBS 2011-10-26 17:59:02

4 réponses

L'original posté réponse était juste à l'époque, mais maintenant (4.3) il y a une migration.exe sorte que vous n'avez pas besoin de nuget ou powershell:

packages\EntityFramework.4.3.1\tools\migrate.exe

voir http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx

9
répondu Scott Stafford 2012-05-23 14:16:29

Le lien pour migrer.les infos de l'exe sont périmées. Depuis ce post m'a aidé voici la dernière pour d'autres personnes qui trébuchent sur ce:

http://msdn.microsoft.com/en-us/data/jj618307.aspx

résumé: l'article vous donne des instructions pour faire migrer.exe installé et en utilisant les arguments de ligne de commande pour effectuer votre scénario de migration. De plus, des problèmes communs sont cernés. Ligne de fond installer EF avec nuget et parcourez le dossier Outils Du paquet pour trouver l'exe.

7
répondu Shawn 2017-06-15 14:56:47

Voici une fonction PowerShell qui fait l'équivalent de update-database dans la console du Gestionnaire de paquets, à partir d'une fenêtre de PowerShell normale, en utilisant EF X. x.x.

Je l'utilise depuis la ligne de commande dans le cadre d'un processus 'full build' sur ma machine dev;

function Update-Database($solutionDir, $projectBinDir, $assemblyName, $appConfigFile)
{
    $efMigrateExe = "$solutionDir\packages\EntityFramework.*\tools\migrate.exe"
    Write-Host "Updating Entity Framework Database"
    Write-Host "    Migrate.exe at $efMigrateExe"
    Write-Host "    EF project binary at $projectBinDir"
    Write-Host "    EF config at $appConfigFile"
    . "$efMigrateExe" "$assemblyName" /startupConfigurationFile="$appConfigFile" /startupDirectory="$projectBinDir"
}

Les paramètres sont:

$solutionDir -- le répertoire où vit votre solution; le parent du packages dossier. $projectBinDir--<something>\bin\debug répertoire contenant l'assemblée avec votre DbContext. $assemblyName -- le nom du fichier d'assemblage, comme MyEfProject.dll appConfigFile -- le nom du app.config ou web.config fichier qui contient des chaînes de connexion, etc. Équivalent à utiliser -StartupProjectName dans la console du Gestionnaire de paquets.

2
répondu Steve Cooper 2015-09-01 13:43:27

Si vous avez un coup d'oeil à l' Nuget Faq c'est la suivante:

puis-je utiliser NuGet en dehors de Visual Studio?

bien sûr que Tu peux! Tel que discuté dans la question sur les outils en ligne de commande pour NuGet, l'objectif principal de NuGet est Visual Studio, mais le noyau de L'API NuGet n'a pas de dépendances sur Visual Studio. Il ya plusieurs clients NuGet qui fonctionnent complètement en dehors de Visual Studio:

SharpDevelop Alpha. (Voir une une démonstration de ceci dans le mvcconf talk de Phil Haack.)

ASP.NET Pages Web dans WebMatrix. (Voir une démonstration dans le discours de Phil Haack.)

NuGet.exe

mais pour utiliser le code première migration en dehors de visual studio le notes de mise à jour dire la chose suivante:

pas d'expérience en dehors du Studio. Alpha 2 ne comprend que les Expérience intégrée de Visual Studio. Nous prévoyons également de livrer une commande outil en ligne et un fournisseur MSDeploy pour les premières Migrations de Code.

1
répondu Wouter de Kort 2011-10-26 16:08:19