我在MVC开发上运行one of Microsoft's tutorial,并且在尝试创建各种元素时遇到错误;视图,控制器等
我得到的错误如下:
There was an error running the selected code generator:
'Sequence contains no elements'
每当我尝试创建一个新元素时,它都是一致的。早些时候,我通过复制视图并重新利用它来绕过错误。但从长远来看,这不是最佳的!
我目前正在参与本教程中出现问题的工作。但是,当我昨天在家里开始本教程时(因此,在不同的网络上)我没有问题。可能有话要说吗?
Here's a link to the project on GitHub.
您认为这是我的网络,项目本身或完全不同的问题吗?
答案 0 :(得分:7)
我赞成@ James的评论,因为它对我有用,但我想将其添加为一个让其他人更容易看到的答案:
打开包管理器控制台:
工具> Nuget包管理器>包管理器控制台
类型:
dotnet restore
无需重新启动/重新安装。
答案 1 :(得分:4)
Visual Studio 2019和.net core 3.0
未安装: Microsoft.VisualStudio.Web.CodeGeneration.Design 版本:3.1.0-preview3.19558.8
并安装: Microsoft.VisualStudio.Web.CodeGeneration.Design 版本:3.0.0
为我解决了这个问题。
答案 2 :(得分:3)
尝试清除ComponentModelCache,缓存将在下次启动VS时重建。
归功于https://stackoverflow.com/a/35815094/5209435
修改强>
providerNames
文件的connectionString
部分中的web.config
是否相同?
答案 3 :(得分:1)
如果您的web.config中有不同的连接字符串实例,则会发生错误
注释掉其他不需要的或必需的连接字符串标记,然后重新构建您的解决方案。就是这样
答案 4 :(得分:1)
对我来说,Microsoft.VisualStudio.Web.CodeGeneration.Design是使用错误的.NetFramework版本还原的。因此,我启动了程序包管理器控制台(工具> NuGet程序包管理器>程序包管理器控制台),然后键入Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design -Version 3.0.0
这为我解决了。
答案 5 :(得分:1)
以上所有答案对我都无效。
但是,这是我收到的错误消息-
我克服了如何通过nuget软件包管理器安装较低版本的razor:
步骤:
在Visual Studio 2017上,单击“工具”>“ Nuget程序包管理器”>“程序包管理器控制台”,然后运行以下命令。
安装软件包Microsoft.VisualStudio.Web.CodeGeneration.Design-版本2.1.1
答案 6 :(得分:0)
卸载并重新安装VS2017不起作用。我可以创建类,项目和其他较小的元素。但是,创建控制器,视图等的问题仍然存在。
答案 7 :(得分:0)
我试图在ASP.NET Core Web应用程序(API模板)中添加一个空的API控制器。我在“项目属性”中发现未设置目标框架。我将其设置为.NET Core 2.1。
如果您随后尝试添加控制器,则会收到错误消息,因为此行代码已添加到Startup.cs中。
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
并且CompatibilityVersion没有Version2_2的枚举,因此将其更改为2_1:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
现在,它将控制器添加为正常。
我正在通过一个全新的项目来实现这一目标。 Visual Studio 2017 15.9.11。
我已经尝试过dotnet还原并清除ComponentModelCache。
答案 8 :(得分:0)
您必须更新或安装Microsoft.VisualStudio.Web.CodeGeneration.Design程序包的版本。
这是解决方案,请注意。
答案 9 :(得分:0)
我在Visual Studio 2019中遇到了相同的错误。
问题可以通过以下方式解决:
答案 10 :(得分:0)
这在VS 2017中对我有用。
关闭VS 2017打开的实例。再次打开它。重建解决方案,然后创建View,Controller等。它将立即创建。
答案 11 :(得分:0)
我的项目对其中一项依赖项( Microsoft.VisualStudio.Web.CodeGeneration.Design )发出了警告。我删除了依赖关系,然后重建了项目。
然后,我添加了一个新的Razor页面,并将依赖项读入了该项目-使用较早的版本(2.1.9),现在我可以添加Razor页面而没有问题了。
答案 12 :(得分:0)
我没有根本原因的证据,但是以下问题浪费了我两天的时间才能找到解决方法。
如果模型类中有大数据表类型,请检查以下单词是否存在
[Column(TypeName = "ubigint")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
在您的模型课中。
只需取出这两行,一切都会好起来的。