在Visual Studio之外的PowerShell中的EF6添加迁移

eiee3dmh  于 2023-04-06  发布在  Shell
关注(0)|答案(2)|浏览(159)

如何在Visual Studio之外的PowerShell窗口中运行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.
dwbf0jvd

dwbf0jvd1#

您需要确保模块已加载。因为这是控制台窗口中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),这是你应该导入的:

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
6ovsh4lw

6ovsh4lw2#

您可以在NuGet包管理器中安装兼容版本的Microsoft.EntityFramework.Tools,这可能会解决您的问题。

相关问题