23

无论如何在 Visual Studio 之外打开NuGet包管理器控制台?

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

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

4

5 回答 5

12

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

packages\EntityFramework.4.3.1\tools\migrate.exe

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

于 2012-05-23T14:16:29.057 回答
9

migrate.exe 信息的链接已过时。由于这篇文章对我有所帮助,因此对于偶然发现此问题的其他人来说,这是最新的:

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

摘要:本文为您提供了有关安装 migrate.exe 和使用命令行参数执行迁移方案的说明。此外,还确定了常见问题。底线使用 nuget 安装 EF 并浏览到包的工具文件夹以找到 exe。

于 2013-09-09T12:25:12.233 回答
2

这是一个 PowerShell 函数,它update-database在包管理器控制台中执行等效操作,从普通 PowerShell 窗口,使用 EF xxx

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

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-- 解决方案所在的目录;packages文件夹 的父级。$projectBinDir--<something>\bin\debug包含您的程序集的目录DbContext$assemblyName-- 程序集文件MyEfProject.dll appConfigFile的名称,例如 --包含连接字符串等的app.config或文件的名称。等效于在包管理器控制台中使用。web.config-StartupProjectName

于 2013-11-05T10:11:30.777 回答
1

如果您查看Nuget Faq,它会说明以下内容:

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

你一定可以!正如关于 NuGet 命令行工具的问题中所讨论的,NuGet 的主要关注点是 Visual Studio,但核心 NuGet API 不依赖于 Visual Studio。有多个 NuGet 客户端完全在 Visual Studio 之外工作:

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

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

NuGet.exe

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

没有 Visual Studio 之外的经验。Alpha 2 仅包含 Visual Studio 集成体验。我们还计划为 Code First 迁移提供命令行工具和 MSDeploy 提供程序。

于 2011-10-26T15:19:29.177 回答
1

截至今天,您可以使用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

官方文档可以在这里那里找到。

于 2019-01-18T14:00:32.513 回答