23

Visual Studio 以外でNuGet Package Manager コンソールを開く方法はありますか?

私の目的は、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 に答える
2

update-databaseEF xxx を使用して、通常の PowerShell ウィンドウから Package Manager コンソールで同等の機能を実行する PowerShell 関数を次に示します。

開発マシンでの「フルビルド」プロセスの一部としてコマンドラインから使用しています。

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.configweb.config-StartupProjectName

于 2013-11-05T10:11:30.777 に答える