在VS 2017中使用脚手架时出错

时间:2017-04-14 19:33:54

标签: visual-studio-2017

我正在尝试在Visual Studio 2017中的ASP.NET Core应用程序中使用Scaffold功能。我正在使用带有视图的MVC Controller,使用Entity Framework。我已经设置了dbcontext和migration,并使用update-database来创建数据库。我选择了" Minimal"脚手架选项。选择模型和dbcontext后,当我单击OK时,我得到一个状态对话框,说它是脚手架,但该对话框退出时出现错误:

  

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

我确保我的项目中的Microsoft.VisualStudio.Web.CodeGeneration.Utils和Microsoft.VisualStudio.Web.CodeGeneration.Design都被引用为包,但我不清楚它们是否适合他们。这是一个新的Azure VM,预装了VS2017社区,最新更新,没有第三方加载项等。这个错误也会出现在一个空视图的脚手架上,所以我相当肯定与EF无关。

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

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

你能展示 .csproj 文件吗?

要尝试的一些事项:

  1. 确保脚手架程序包Microsoft.VisualStudio.Web.CodeGeneration.Design的程序包引用具有正确的版本: 一个。 1.0.x for ASP.NET Core 1.0等。

  2. 不应直接引用的其他脚手架包 一个。 Microsoft.VisualStudio.Web.CodeGeneration.Utils 湾Microsoft.VisualStudio.Web.CodeGeneration.Templating C。 Microsoft.VisualStudio.Web.CodeGeneration.EntityFrameworkCore d。 Microsoft.VisualStudio.Web.CodeGeneration.Core 即Microsoft.VisualStudio.Web.CodeGeneration F。 Microsoft.VisualStudio.Web.CodeGeneration.MsBuild G。 Microsoft.VisualStudio.Web.CodeGeneration.Contracts H。 Microsoft.VisualStudio.Web.CodeGenerators.Mvc 一世。 Microsoft.VisualStudio.Web.CodeGeneration.Tools - 这个需要成为DotNetCliToolReference

  3. 清除本地NuGet缓存。

  4. 清除项目的bin和obj文件夹并恢复项目。

答案 2 :(得分:0)

我遇到了同样的问题,并试图找到答案。我花了几个小时来弄明白这一点,所以在这里张贴给其他可能会觉得有用的人。

<强>问题/背景 即使添加CodeGeneration工具包和设计包,从VS2017生成控制器时仍然存在错误。我从命令行创建项目,并在切换到VS2017之前使用VS Code。 最初我添加控制器时出现以下错误:

enter image description here

为解决此错误,我只需将project / bin / Debug的内容复制到project / bin / MCD / Debug

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

<强>解决方案: 删除bin文件夹和obj文件夹并重建。然后将/ bin / Debug的内容复制到/ bin / MCD / Debug(对obj文件夹也是如此)。

这解决了我的问题。

答案 3 :(得分:0)

有完全相同的问题。推出visual studio安装程序并进行了全面修复,选择了ASP.net核心开发包。现在一切正常。