如何在PowerShell窗口中的Visual Studio外部运行EF6 Add-Migration
?
当我尝试运行它时,出现以下错误消息:
Add-Migration : The term 'Add-Migration' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
答案 0 :(得分:1)
您需要确保已加载模块。由于这是该控制台窗口中VS环境的一部分,因此默认情况下它将加载一些不同的模块。您可以通过在VS中打开控制台并使用
来解决此问题。PS ~/> $path = (Get-Module -Name EntityFrameworkCore).Path
对我来说,这解决了:
PS ~/> $path
C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.1.1\tools\EntityFrameworkCore.psm1
因此,您可以采用该路径并将其导入常规的Powershell窗口中:
PS ~/> Import-Module -Name $path
但是在查看文件夹(令人讨厌的是不符合标准)之后,它也有一个模块清单文件(.psd1
),您应该 导入该文件清单文件:< / p>
PS ~/> Set-Location -Path 'C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.1.1\tools'
PS /Program Files/dotnet/sdk/NuGetFallbackFolder/microsoft.entityframeworkcore.tools/2.1.1/tools/> Import-Module -Name EntityFrameworkCore.psd1
脚注:这是我的VS安装如何初始化其控制台的方法:
Import-Module 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO\2017\ENTERPRISE\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\NUGET\Modules\NuGet\NuGet.psd1'
$__pc_args=@(); $input|%{$__pc_args+=$_}; & 'C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.1.1\tools\init.ps1' $__pc_args[0] $__pc_args[1] $__pc_args[2]; Remove-Variable __pc_args -Scope 0