在 Visual Studio 的包管理器控制台 (V 6.6.0.61) 中,命令
get-migrations
,以及其他实体框架命令,输出:
Specify --help for a list of available options and commands.
Unrecognized command or argument 'C#'
我已在上周通过 PMC 成功运行此命令和其他 EF 命令。但是,这些命令似乎突然产生了上述两行输出。我已经安装了 EF V6.4.4,已通过
Get-Package
和Get-Help about_EntityFramework
验证。
我使用的是 ASP.NET MVC 5,而不是 Core。
PMC中的get-migrations
通常会列出自种子方法以来已实现的迁移文件。我特别困惑,因为“C#”没有出现在命令本身中......
好像前几天有人发过这个问题,但作者删除了。
有什么想法可能导致这种情况吗?
--
编辑: 以下是代码库中的软件包,由
Get-Package
报告(已删除 ProjectName
列):
Id Versions -------- -----------
Antlr {3.5.0.2}
bootstrap {4.6.0}
EntityFramework {6.4.4}
jQuery {3.6.0}
jQuery.Validation {1.19.3}
Microsoft.AspNet.Mvc {5.2.7}
Microsoft.AspNet.Razor {3.2.7}
Microsoft.AspNet.Web.Optimization {1.1.3}
Microsoft.AspNet.WebPages {3.2.7}
Microsoft.CodeDom.Providers.DotN... {3.6.0}
Microsoft.jQuery.Unobtrusive.Val... {3.2.12}
Microsoft.Web.Infrastructure {1.0.0.0}
Modernizr {2.8.3}
Newtonsoft.Json {13.0.1}
popper.js {1.16.1}
System.Reflection {4.3.0}
WebGrease {1.6.0}
Microsoft.AspNet.Mvc {5.2.7}
Microsoft.AspNet.Razor {3.2.7}
Microsoft.AspNet.WebPages {3.2.7}
Microsoft.CodeDom.Providers.DotN... {3.6.0}
Microsoft.Web.Infrastructure {1.0.0.0}
EntityFramework {6.4.4}
Microsoft.AspNet.Mvc {5.2.7}
Microsoft.AspNet.Razor {3.2.7}
Microsoft.AspNet.WebPages {3.2.7}
Microsoft.CodeDom.Providers.DotN... {3.6.0}
Microsoft.Web.Infrastructure {1.0.0.0}
System.Buffers {4.5.1}
Ical.Net {4.2.0}
MailKit {3.4.3}
Microsoft.CodeDom.Providers.DotN... {3.6.0}
MimeKit {3.4.3}
NodaTime {3.0.9}
NS.Utilities.EmailHelper {1.0.23}
Portable.BouncyCastle {1.9.0}
System.Buffers {4.5.1}
System.Diagnostics.EventLog {7.0.0}
System.Memory {4.5.5}
System.Numerics.Vectors {4.5.0}
System.Runtime.CompilerServices.... {6.0.0}
System.Security.Principal.Windows {5.0.0}
System.Threading.Tasks.Extensions {4.5.4}
Antlr {3.5.0.2}
bootstrap {4.6.0}
EntityFramework {6.4.4}
jQuery {3.6.0}
jQuery.UI.Combined {1.13.1}
jQuery.Validation {1.19.3}
Microsoft.AspNet.Mvc {5.2.7}
Microsoft.AspNet.Razor {3.2.7}
Microsoft.AspNet.Web.Optimization {1.1.3}
Microsoft.AspNet.WebPages {3.2.7}
Microsoft.CodeDom.Providers.DotN... {3.6.0}
Microsoft.jQuery.Unobtrusive.Val... {3.2.12}
Microsoft.Web.Infrastructure {1.0.0.0}
Modernizr {2.8.3}
Newtonsoft.Json {13.0.1}
popper.js {1.16.1}
System.Buffers {4.5.1}
System.Reflection {4.3.0}
WebGrease {1.6.0}
我必须重新安装 Visual Studio。然后又成功了。
有一种方法可以解决此问题,直到发布修复程序并且不需要重新安装 Visual Studio。
如果您从 PMC 以详细模式运行命令,例如Add-Migration "Name of Amendment" --verbose,你会看到对于--language参数,C#被输出了两次。
您可以复制该字符串,然后从语言参数中删除第二个 C#,将其粘贴回 PMC 并运行它。
然后它将创建您的迁移脚本。 注意,您可能需要通过添加->现有项目手动将迁移脚本添加到解决方案中的Migrations文件夹中,并选择组成迁移脚本的3个文件。
要更新数据库,请运行 Update-Database --verbose,复制上面的字符串并删除第二个 C#,然后粘贴回 PMC 并运行。
希望这个问题很快就会得到永久修复。