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.
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
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.
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.
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.