ASP.NET 核心脚手架在 VS 2017 中不起作用
ASP.NET Core Scaffolding does not work in VS 2017
我在Visual Studio 2017年有一个初学者ASP.NET核心项目,目前处于HelloWorld的脚手架阶段。脚手架不起作用,我在第一台计算机上测试,然后在第二台计算机上测试...
当我尝试生成带有视图的控制器时
,它在第一台机器上出现以下错误:
Microsoft Visual Studio
Error
There was an error running the selected code generator:
'Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
at Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args)'
OK
在第二台机器上:
Microsoft Visual Studio
Error
There was an error running the selected code generator:
'Error: assembly specified in the dependencies manifest was not found -- package: 'microsoft.applicationinsights.aspnetcore', version: '2.1.0', path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll''
OK
使用来自控制台的命令清除本地 NuGet 缓存:
dotnet nuget locals all --clear
恢复所有包
安装(或更新)NuGet 包 Microsoft.CodeAnalysis.CSharp.Workspaces
版本 2.0.0
(或更高版本)编辑:它接缝版本 2.3.0 和 2.3.1 导致一些问题。所以最多坚持使用 2.2.0,直到 MS 解决这个问题 (https://github.com/dotnet/roslyn/issues/20873
)。
再次恢复所有包并尝试脚手架。
这对我有用。
确保您在项目中正确引用了这些包:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
我的项目使用 Asp.Net Core 1.1.2
和 VS2017 Community
以下适合我。
我删除了 bin
和 obj
文件夹,重新构建项目,它工作了。
万一出现错误:在 debug
文件夹中找不到 project.deps.json
。
将项目设置为调试,运行它,现在您可以添加脚手架项目。
我也有同样的情况。在 .net 核心版本 2.2 和 VS 2017 Enterprise 上。
下一条指令对我很有帮助:
- 使用管理员权限打开 VS。
- 加载解决方案到 VS
- 从脚手架菜单添加控制器。 VS 将安装 'Microsoft.VisualStudio.Web.CodeGeneration.Design' 和 'Microsoft.VisualStudio.Web.CodeGeneration.Tools' 包。
- 关闭VS
- 打开 VS 并加载项目。通过 scaffloading 添加控制器工作正常
也许这条说明对某人有帮助,
谢谢。
您应该像 Microsoft.AspNetCore.App
的版本一样更改 Microsoft.VisualStudio.Web.CodeGeneration.Design 的版本
我试图 运行 安装了 asp.net 核心版本 3.0.0 的命令,所以我得到了同样的错误
命令:dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
错误:
脚手架失败。
无法加载文件或程序集 'Microsoft.VisualStudio.Web.CodeGeneration, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'。系统找不到指定的文件。
- 解决方案:
dotnet nuget locals all --clear
dotnet 删除包 Microsoft.VisualStudio.Web.CodeGeneration.Utils
更改版本 2.2.0 的 PackageRefere
运行 再次执行命令。
dotnet aspnet-codegenerator 控制器-name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
为了搜索者的利益:
我在 VS2019 中得到了这个。原因是我的代码被破坏了。
没有意识到为什么要开始,但是当你意识到代码生成是一个nuget包时;如果项目未构建,则 Visual Studio 无法获取该包。
编译代码后,这个错误就消失了。
解决方案:
- 转到 VS2019 --> 依赖项 --> 包
- 单击“管理 NuGet”
- 在搜索中输入“Microsoft.VisualStudio.Web.CodeGeneration.Utils”
或缺少的 Dll。
- 点击安装。
- 重建解决方案
- 然后添加脚手架项。
它有效..:-)
我通过使用 nuget 包管理器卸载所有 entity framework 包并再次使用相同版本重新安装来解决这个问题。
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.设计
- Microsoft.EntityFrameworkCore.SqlServer
(3.10版本)
转到解决方案资源管理器 -> 清理解决方案然后构建解决方案
这对我有用。
我收到了不同的错误信息。实际上没有什么特别的,没有提到依赖项或程序集。我尝试了所有上述建议,但均未成功。然后我尝试让它创建一个新的 DbContext 而不是指定一个现有的。这解决了我的问题。
- 在菜单 --> 编译 --> 清理解决方案
- 在菜单上 --> 编译 --> 生成解决方案。
然后使用脚手架重复创建 crud。
这对我行得通。谢谢
我在Visual Studio 2017年有一个初学者ASP.NET核心项目,目前处于HelloWorld的脚手架阶段。脚手架不起作用,我在第一台计算机上测试,然后在第二台计算机上测试...
当我尝试生成带有视图的控制器时
Microsoft Visual Studio
Error
There was an error running the selected code generator:
'Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified. at Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args)'
OK
在第二台机器上:
Microsoft Visual Studio
Error
There was an error running the selected code generator:
'Error: assembly specified in the dependencies manifest was not found -- package: 'microsoft.applicationinsights.aspnetcore', version: '2.1.0', path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll''
OK
使用来自控制台的命令清除本地 NuGet 缓存:
dotnet nuget locals all --clear
恢复所有包
安装(或更新)NuGet 包 Microsoft.CodeAnalysis.CSharp.Workspaces
版本 2.0.0
(或更高版本)编辑:它接缝版本 2.3.0 和 2.3.1 导致一些问题。所以最多坚持使用 2.2.0,直到 MS 解决这个问题 (https://github.com/dotnet/roslyn/issues/20873
)。
再次恢复所有包并尝试脚手架。
这对我有用。
确保您在项目中正确引用了这些包:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="1.1.1" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
我的项目使用 Asp.Net Core 1.1.2
和 VS2017 Community
以下适合我。
我删除了 bin
和 obj
文件夹,重新构建项目,它工作了。
万一出现错误:在 debug
文件夹中找不到 project.deps.json
。
将项目设置为调试,运行它,现在您可以添加脚手架项目。
我也有同样的情况。在 .net 核心版本 2.2 和 VS 2017 Enterprise 上。
下一条指令对我很有帮助:
- 使用管理员权限打开 VS。
- 加载解决方案到 VS
- 从脚手架菜单添加控制器。 VS 将安装 'Microsoft.VisualStudio.Web.CodeGeneration.Design' 和 'Microsoft.VisualStudio.Web.CodeGeneration.Tools' 包。
- 关闭VS
- 打开 VS 并加载项目。通过 scaffloading 添加控制器工作正常
也许这条说明对某人有帮助, 谢谢。
您应该像 Microsoft.AspNetCore.App
的版本一样更改 Microsoft.VisualStudio.Web.CodeGeneration.Design 的版本我试图 运行 安装了 asp.net 核心版本 3.0.0 的命令,所以我得到了同样的错误 命令:dotnet aspnet-codegenerator controller -name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
错误: 脚手架失败。 无法加载文件或程序集 'Microsoft.VisualStudio.Web.CodeGeneration, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'。系统找不到指定的文件。
- 解决方案:
dotnet nuget locals all --clear
dotnet 删除包 Microsoft.VisualStudio.Web.CodeGeneration.Utils
更改版本 2.2.0 的 PackageRefere
运行 再次执行命令。 dotnet aspnet-codegenerator 控制器-name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
为了搜索者的利益:
我在 VS2019 中得到了这个。原因是我的代码被破坏了。
没有意识到为什么要开始,但是当你意识到代码生成是一个nuget包时;如果项目未构建,则 Visual Studio 无法获取该包。
编译代码后,这个错误就消失了。
解决方案:
- 转到 VS2019 --> 依赖项 --> 包
- 单击“管理 NuGet”
- 在搜索中输入“Microsoft.VisualStudio.Web.CodeGeneration.Utils” 或缺少的 Dll。
- 点击安装。
- 重建解决方案
- 然后添加脚手架项。 它有效..:-)
我通过使用 nuget 包管理器卸载所有 entity framework 包并再次使用相同版本重新安装来解决这个问题。
- Microsoft.EntityFrameworkCore
- Microsoft.EntityFrameworkCore.设计
- Microsoft.EntityFrameworkCore.SqlServer
(3.10版本)
转到解决方案资源管理器 -> 清理解决方案然后构建解决方案
这对我有用。
我收到了不同的错误信息。实际上没有什么特别的,没有提到依赖项或程序集。我尝试了所有上述建议,但均未成功。然后我尝试让它创建一个新的 DbContext 而不是指定一个现有的。这解决了我的问题。
- 在菜单 --> 编译 --> 清理解决方案
- 在菜单上 --> 编译 --> 生成解决方案。
然后使用脚手架重复创建 crud。 这对我行得通。谢谢