Visual studio 2010 在Visual Studio外部使用NuGet Package Manager控制台运行实体框架迁移

Visual studio 2010 在Visual Studio外部使用NuGet Package Manager控制台运行实体框架迁移,visual-studio-2010,entity-framework-4,nuget,entity-framework-migrations,Visual Studio 2010,Entity Framework 4,Nuget,Entity Framework Migrations,是否仍然可以在Visual Studio外部打开包管理器控制台 我的目标是运行一些迁移,我使用 基本上,我希望在没有visual studio,但有PowerShell 2.0和NuGet命令行工具的环境中运行更新数据库–Verbose命令。如果您查看 我可以在Visual Studio之外使用NuGet吗 你当然可以!如前所述 在关于NuGet命令行工具的问题中 NuGet是Visual Studio,但核心NuGet API不依赖于 Visual Studio。有多个NuGet客户端可以完全

是否仍然可以在Visual Studio外部打开包管理器控制台

我的目标是运行一些迁移,我使用

基本上,我希望在没有visual studio,但有PowerShell 2.0和NuGet命令行工具的环境中运行
更新数据库–Verbose
命令。

如果您查看

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

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

夏普开发阿尔法。(参见Phil Haack的MvcConf演讲中的演示。)

WebMatrix中的ASP.NET网页。(见菲尔·哈克演讲中的演示。)

NuGet.exe

但对于在visual studio之外使用代码优先迁移,请执行以下操作:

没有Visual Studio以外的体验。Alpha 2仅包括 Visual Studio集成体验。我们还计划发出命令 用于代码优先迁移的行工具和MSDeploy提供程序


最初发布的答案当时是正确的,但现在(从4.3开始)有一个migrate.exe,因此您不需要nuget或powershell:

packages\EntityFramework.4.3.1\tools\migrate.exe

请参见

migrate.exe信息的链接已过期。因为这篇文章帮助了我,所以对于其他偶然发现这一点的人来说,这里是最新的:


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

这里有一个PowerShell函数,它使用EF x.x.x在软件包管理器控制台中执行与更新数据库相当的功能

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

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"
}
参数为:

$solutionDir
——解决方案所在的目录;
文件包
文件夹的父级。
$projectBinDir
——包含带有
DbContext
的程序集的
\bin\debug
目录。
$assemblyName
——程序集文件的名称,如
MyEfProject.dll

appConfigFile
——包含连接字符串等的
app.config
web.config
文件的名称。相当于在Package Manager控制台中使用
-StartupProjectName

从今天起,您可以使用
dotnet ef
命令使用所有代码优先的命令迁移
在使用它之前,您需要通过
dotnet工具install--global dotnet ef
安装它

示例:

  • 更新数据库
-->
dotnet ef数据库更新


  • 添加迁移AddProductReviews
-->
dotnet ef迁移添加AddProductReviews


  • 删除迁移
-->
dotnet ef迁移删除


而且。

Nuget命令行工具没有更新数据库的命令–Verbose-我的问题是如何在visual studio外部、package manager控制台外部运行类似powershell的脚本!正在查找类似于
nuget-custom“更新数据库–详细信息”
@扎兹:你看过答案了吗?您是否阅读了该软件包的发行说明?Alpha版本当前仅针对VS体验=未提供VS外支持。如果您的powershell抱怨
更新程序包
未知,您可能需要更新powershell(比如版本5)。您能在回答中总结一下链接吗?