添加新视图时运行所选代码生成器时出错

时间:2020-02-26 12:59:55

标签: asp.net-core-mvc

我正在研究一个asp.net核心MVC项目。我需要为控制器的方法添加视图。为此,我右键单击所考虑方法的主体,然后选择“添加视图”,但系统显示一个错误:

运行选定的代码生成器时出错:程序包还原失败,无法回滚程序包更改MyProject。

如果有人告诉我如何解决此问题,我将不胜感激。

enter image description here

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:2)

我一直在用这个敲我的头。我按照以下步骤解决了这个问题。

  1. 确保所有软件包的版本完全相同!甚至补丁版本似乎都失败了。所以如果你的 SQLite 是 3.1.1 而你的 SQLServer 是 3.1.2 它会失败

  2. 打开您的 csproj 文件并手动将软件包版本编辑为完全相同的版本。目前它的所有内容都是 5.0.3,但我在 Microsoft.VisualStudio.Web.CodeGeneration.Design5.0.2 并且它失败了

enter image description here

  1. 可选步骤:从所有项目中删除这些包
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.2" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="5.0.2" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
        
  1. 手动编辑 csproj 文件后,保存它/它们(顺便说一下,在所有 csproj 文件中进行更改)

  2. 我也做了这一步 - Nuget Package Manager Settings -> Package Sources 取消选择本地文件夹,只确保选择远程文件夹

Package Sources

  1. 关闭 Visual Studio 2019。

  2. 删除解决方案文件夹中的 .vs 文件夹。

  3. 再次启动 Visual Studio,设置启动项目等

  4. 现在尝试创建一个脚手架控制器,它会再次安装软件包并且应该可以工作!

答案 1 :(得分:1)

我一直在尝试使用下面提供的最新版本的脚手架标识

 <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="5.0.7" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.7">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
</ItemGroup>

最近 2 天我一直遇到类似的错误,我尝试了大部分解决方案,但对我来说没有用。

后来我创建了一个新项目并尝试了脚手架,它起作用了,我检查了新项目的 .csproj 并配置了我的旧项目,它对我有用。 如果您希望使用最新版本进行脚手架,这里是版本详细信息。

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="5.0.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.6" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="5.0.6" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />
  </ItemGroup> 

也许它可以帮助尝试使用最新版本(5.0.7)进行身份脚手架的人。

答案 2 :(得分:0)

程序包还原无法回滚“ MyProject”的程序包更改。

似乎正在尝试安装与您的应用的netcore版本不兼容的软件包,从而导致了问题。

要解决此问题,请尝试在 Output 窗口中查看详细信息,如下所示。

enter image description here