7

我已经在我的 Windows 10 上安装了 VS 2019。创建了 ASP.net Core Web Project -> Selected API。当我尝试生成引用模型的控制器并创建上下文类时,它没有生成控制器类,但它给了我以下错误:

错误,运行所选代码生成器时出错

'未处理的异常。System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.VisualStudio.Web.CodeGeneration.Utils,版本=3.1.2.0,文化=中性,PublicKeyToken=adb9793829ddae60”。该系统找不到指定的文件。文件名:Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args) 中的“Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”

4

10 回答 10

9

我也有这个问题,但以下答案对我有用。选择“管理 Nuget 包”并安装这些包

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="3.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" ExcludeAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="3.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Version="3.1.2" />
于 2020-05-01T17:04:02.760 回答
2

要解决此问题,您可以右键单击您的项目,然后选择 Manage Nuget Packages。

接下来,搜索 Microsoft.VisualStudio.Web.CodeGeneration.Utils,然后安装它。

安装以上后,它正在生成而没有错误。

于 2020-04-26T16:26:57.427 回答
1

首先,检查您的 csproj 文件。“Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0”没有包参考。这就是显示“无法加载文件或程序集”的错误消息的原因。很容易解决。https://www.nuget.org/packages/Microsoft.VisualStudio.Web.CodeGeneration.Utils/ 转到包管理器控制台安装它。

于 2020-05-06T05:31:51.043 回答
1

对于它的价值,以下解决方案对我有用。

我的设置:首先我的项目设置是不同的。我有一个 MyProject.Data 和 MyProject,我试图在 MyProject 中的 API 文件夹中搭建“带有动作的 API 控制器,使用实体框架”,但我遇到了相关错误。我使用的是.net 3.1。

解决方案:我不得不降级 MyProject.Data 项目上安装的所有以下 nuget 包

Before downgrade:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2">


 After downgrade:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.11">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.11">

然后再次尝试使用脚手架,它就奏效了!!

在搭建 MyProject 后,安装了以下 nuget 包版本:

<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.11"/>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" /> 

主要问题是除了显示在对话框上的错误之外没有显示任何错误,或者甚至没有将我们指向任何日志,也没有任何有用的文档可用。如果有人找到,请将其附加到此答案中。这非常令人沮丧,这几乎耗尽了我周末的半天时间:(

希望它可以帮助某人。编码快乐!!

于 2021-01-30T23:23:04.183 回答
0

请检查您是否拥有兼容版本的所有软件包。当您拥有不同版本的包时,可能会发生这种情况,其中一个版本不支持当前的功能/项目类型。

于 2021-01-17T02:28:14.907 回答
0

我在 ovveride Identity 登录和注册布局期间遇到了类似的错误。我确实从 Application.Web 卸载了所有软件包并再次安装。我从 NuGet 包重新安装库:

Microsoft.AspNetCore.Authentication.Google
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.AspNetCore.Identity.UI
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
于 2021-03-11T21:41:16.733 回答
0

我有类似的行为,但使用了不同版本的包:'Microsoft.VisualStudio.Web.CodeGeneration.Utils,Version=3.1.4.0'。该包已安装(在管理 NUGet 包和 .csproj 文件中)。我从 Manage NUGet Packages 卸载它并重新安装。这解决了我的问题。

于 2020-09-23T14:08:20.093 回答
0

我的解决方案有 5 个项目(2 个 dll、webservice、db 和 MVC)。我删除了除了 MVC 项目之外的所有项目,问题就停止了。重新添加了所有项目,问题没有返回。将旧解决方案文件与新解决方案文件进行比较显示了一堆更改,很难说哪个更改是修复,但解决方案文件要干净得多。

于 2021-06-16T16:23:11.200 回答
0

我也面临同样的问题。这是不同版本的 NuGet 包的问题。只是尝试使用类似版本的软件包。

Microsoft.VisualStudio.Web.CodeGeneration.Utils(5.0.2) Microsoft.VisualStudio.Web.CodeGeneration.Design(5.0.2)

于 2021-03-08T16:45:31.207 回答
0

我的解决方案中有一个 .Data 项目和另一个 .API 项目。自动脚手架动作控制器试图添加Microsoft.VisualStudio.Web.CodeGeneration.Design,它升级到v5.0.2。我不得不将我所有的 nuget 包降级到 5.0.2,如下所示:

数据项目

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />

API项目

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />

然后,具有 EF 核心 dbcontext 的 API 操作控制器能够成功添加:

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />

我希望这有帮助!一切顺利。

于 2021-05-04T18:33:36.327 回答