Visual studio 2017 VS 2017中使用脚手架时出错

Visual studio 2017 VS 2017中使用脚手架时出错,visual-studio-2017,Visual Studio 2017,我正试图在Visual Studio 2017的ASP.NET核心应用程序中使用Scaffold功能。我正在使用MVC控制器和视图,使用实体框架。我已经设置了dbcontext和迁移,并使用updatedatabase创建了一个数据库。我选择了“最小”脚手架选项。选择模型和dbcontext后,当我单击OK时,我会看到一个状态对话框,说它是scaffolding,但该对话框退出时出现错误: 错误运行所选代码生成器时出错: '未处理的异常:System.IO.FileNotFoundExcepti

我正试图在Visual Studio 2017的ASP.NET核心应用程序中使用Scaffold功能。我正在使用MVC控制器和视图,使用实体框架。我已经设置了dbcontext和迁移,并使用updatedatabase创建了一个数据库。我选择了“最小”脚手架选项。选择模型和dbcontext后,当我单击OK时,我会看到一个状态对话框,说它是scaffolding,但该对话框退出时出现错误:

错误运行所选代码生成器时出错: '未处理的异常:System.IO.FileNotFoundException:无法加载 文件或程序集“Microsoft.VisualStudio.Web.CodeGeneration.Utils”, 版本=1.1.0.0,区域性=中性,PublicKeyToken=adb9793829ddae60'。 系统找不到指定的文件。在 Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(字符串[]) args)'

我已确保Microsoft.VisualStudio.Web.CodeGeneration.Utils和Microsoft.VisualStudio.Web.CodeGeneration.Design在我的项目中都作为软件包引用,但我不清楚它们的正确位置。这是一个新的Azure VM,预安装了VS2017社区、最新更新,并且没有第三方加载项等。此错误也会出现在空视图中,因此我相当确定与EF无关


如何解决这个问题以使脚手架功能正常工作?

我遇到了同样的问题,并在这里着陆,试图找到答案。我又花了几个小时才弄明白,所以在这里发布给其他可能觉得有用的人

问题/背景: 即使添加了代码生成UTIL和设计包,从VS2017生成控制器时,错误仍然存在。我从命令行创建了这个项目,并在切换到VS2017之前使用VS代码。 最初,我在添加控制器时遇到以下错误:

为了解决这个错误,我只是将project/bin/Debug的内容复制到project/bin/MCD/Debug

在那之后,错误消失了。这也是另一个错误的问题。我在复制上述文件夹内容后添加了这两个包。后续生成没有自动更新此文件夹的内容,因此出现错误

解决方案: 删除bin文件夹和obj文件夹并重新生成。然后将/bin/Debug的内容复制到/bin/MCD/Debug(对obj文件夹也要这样做)


这为我解决了问题。

不幸的是,这没有为我解决问题。不过值得一试


我通过在VS 2015中加载项目,搭建控制器,保存它,然后切换回VS 2017解决了这个问题

无法加载Microsoft.VisualStudio.Web.CodeGeneration.Utils程序集的错误通常是由于NuGet程序包缓存或项目中程序包的版本不匹配造成的

你能出示你的.csproj文件吗

有几件事可以尝试:

  • 确保脚手架包Microsoft.VisualStudio.Web.CodeGeneration.Design的包参考具有正确的版本: A.用于ASP.NET Core 1.0等的1.0.x

  • 其他不应直接引用的脚手架包包括 A.Microsoft.VisualStudio.Web.CodeGeneration.Utils BMicrosoft.VisualStudio.Web.CodeGeneration.Templateing CMicrosoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore DMicrosoft.VisualStudio.Web.CodeGeneration.Core EMicrosoft.VisualStudio.Web.CodeGeneration FMicrosoft.VisualStudio.Web.CodeGeneration.MsBuild GMicrosoft.VisualStudio.Web.CodeGeneration.Contracts HMicrosoft.VisualStudio.Web.CodeGenerators.Mvc 我Microsoft.VisualStudio.Web.CodeGeneration.Tools--此工具必须是DotNetCliToolReference

  • 清除本地NuGet缓存

  • 清除项目的bin和obj文件夹并恢复项目

  • 我也有同样的问题。启动visual studio安装程序并进行了完整修复,选择了ASP.net核心开发包。现在一切都正常了。

    您是否需要为VS 2015安装一些tolling来打开.NET Core项目?在升级到VS2017之前,我已经安装了.NET Core工具,因此我不知道如果没有这些工具,它是否会在VS2015中打开。我想不是。那么,你的ASP.NET核心项目是用VS 2015创建的?因为我的是在VS 2017中创建的,所以它甚至没有在VS 2015中打开……不,它是在VS 2017中创建的。但我在2015年打开它时没有遇到任何问题。我对visual studio 2017进行了修复,问题消失了。您的错误消息不同,因此问题和解决方案也不同。