在Visual Studio外部使用NuGet包管理器控制台运行实体框架迁移



是否有办法在Visual Studio之外打开NuGet Package Manager控制台?

我的目标是运行一些迁移,我使用EntityFramework创建的。迁移

基本上我想在没有visual studio的环境中运行Update-Database –Verbose命令,但有PowerShell 2.0和NuGet命令行工具。

最初发布的答案在当时是正确的,但现在(作为4.3)有一个migrate.exe,所以你不需要nuget或powershell:

packagesEntityFramework.4.3.1toolsmigrate.exe

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

migration .exe info的链接已过期。既然这篇文章帮助了我,这里是为其他偶然发现这个问题的人提供的最新消息:

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

摘要:本文向您介绍如何安装migrate.exe并使用命令行参数来执行迁移场景。此外,还确定了常见问题。最后用nuget安装EF,然后浏览到软件包的tools文件夹找到exe.

这是一个PowerShell函数,它在一个普通的PowerShell窗口中使用EF x.x.x在包管理器控制台上执行等同于update-database的操作。

我在我的开发机器上从命令行使用它作为"完整构建"过程的一部分;

function Update-Database($solutionDir, $projectBinDir, $assemblyName, $appConfigFile)
{
    $efMigrateExe = "$solutionDirpackagesEntityFramework.*toolsmigrate.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"
}

参数为;

$solutionDir—解决方案所在的目录;packages文件夹的父文件夹。$projectBinDir——<something>bindebug目录,包含DbContext的程序集。$assemblyName——程序集文件的名称,与MyEfProject.dll类似appConfigFileapp.configweb.config文件的名称,包含连接字符串等。相当于在Package Manager控制台中使用-StartupProjectName

如果你看一下Nuget常见问题解答,它是这样说的:

我可以在Visual Studio之外使用NuGet吗?

你当然可以!如前所述在关于NuGet的命令行工具的问题中,主要关注的是NuGet是Visual Studio,但是核心的NuGet API没有依赖Visual Studio。有多个NuGet客户端可以完全工作在Visual Studio之外:

SharpDevelopα。(参见Phil Haack的MvcConf talk中的演示)

ASP。. NET网页在WebMatrix。(参见Phil Haack的演讲中的演示)

NuGet.exe

但是对于在visual studio之外使用代码优先迁移,发行说明如下:

没有visual studio之外的经验。2只包含Visual Studio集成体验。我们还计划发布命令line tool和MSDeploy provider for Code First Migrations.

今天,您可以使用dotnet ef命令来使用所有代码优先命令迁移。
你需要通过dotnet tool install --global dotnet-ef安装它才能使用它。

例子:

  • Update-Database

——比;dotnet ef database update


  • Add-Migration AddProductReviews

——比;dotnet ef migrations add AddProductReviews


  • Remove-Migration

——比;dotnet ef migrations remove

官方文件随处可见

相关内容

最新更新