我在Visual Studio 2017中有一个初学者ASP.NET Core项目,我正处于HelloWorld的脚手架步骤。 Scaffolding不起作用,我在第一台计算机上测试,然后在第二台计算机上测试......
当我尝试生成带视图的控制器时
,它在第一台机器上出现以下错误:
Microsoft Visual Studio
错误
运行所选代码生成器时出错:
'未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集' Microsoft.VisualStudio.Web.CodeGeneration.Utils,Version = 1.1.1.0,Culture = neutral,PublicKeyToken = adb9793829ddae60&# 39 ;.该系统找不到指定的文件。 在Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String [] args)'
好的
在第二台机器上:
Microsoft Visual Studio
错误
运行所选代码生成器时出错:
'错误:未找到依赖项清单中指定的程序集 - package:' microsoft.applicationinsights.aspnetcore',version:' 2.1.0',path: ' LIB / netstandard1.6 / Microsoft.ApplicationInsights.AspNetCore.dll''
好的
答案 0 :(得分:4)
为了搜索者的利益:
我在VS2019中得到了这个。原因是我的代码被破坏了。
没有意识到为什么要启动,但是当您意识到代码生成是一个nuget包时;如果项目无法生成,则Visual Studio无法访问该程序包。
一旦我编译了代码,这个错误就消失了。
答案 1 :(得分:3)
使用来自控制台的命令清除本地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
答案 2 :(得分:3)
以下适用于我。
我删除了bin
&amp; obj
个文件夹,再次构建项目并运行。
如果它给你错误:它在project.deps.json
文件夹中找不到debug
。
将项目设置为 debug ,运行它,现在您可以添加脚手架项目。
答案 3 :(得分:2)
我也有同样的情况。在.net核心版本2.2和VS 2017 Enterprise上。
下一条指令对我有帮助:
也许此说明对某人有帮助, 谢谢。
答案 4 :(得分:2)
您应该完全像Microsoft.AspNetCore.App的版本一样更改Microsoft.VisualStudio.Web.CodeGeneration.Design的版本
答案 5 :(得分:1)
我通过使用 nuget 包管理器卸载所有实体框架包并再次使用相同版本重新安装来解决此问题。
(3.10 版本)
答案 6 :(得分:0)
我试图在安装了asp.net core 3.0.0版本的情况下运行以下命令,所以我遇到了相同的错误 命令:dotnet aspnet代码生成器控制器-name MoviesController -m Movie -dc MvcMovieContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
错误: 脚手架失败。 无法加载文件或程序集'Microsoft.VisualStudio.Web.CodeGeneration,版本= 3.0.0.0,区域性=中性,PublicKeyToken = adb9793829ddae60'。系统找不到指定的文件。
dotnet nuget locals全部-清除
dotnet删除软件包Microsoft.VisualStudio.Web.CodeGeneration.Utils
更改版本2.2.0的PackageRefere
再次运行命令。 dotnet aspnet代码生成器控制器-名称MoviesController -m电影-dc MvcMovieContext --relativeFolderPath控制器--useDefaultLayout --referenceScriptLibraries
答案 7 :(得分:0)
解决方案:
答案 8 :(得分:0)
转到解决方案资源管理器 -> 清理解决方案然后构建解决方案
这对我有用。
答案 9 :(得分:0)
我收到了不同的错误消息。实际上没有什么具体的,没有提到依赖项或程序集。我尝试了上述所有建议,但没有成功。然后我尝试让它创建一个新的 DbContext 而不是指定一个现有的。这解决了我的问题。
答案 10 :(得分:0)
然后使用脚手架重复创建 crud。 这对我行得通。谢谢