我正在研究一个asp.net核心MVC项目。我需要为控制器的方法添加视图。为此,我右键单击所考虑方法的主体,然后选择“添加视图”,但系统显示一个错误:
运行选定的代码生成器时出错:程序包还原失败,无法回滚程序包更改MyProject。
如果有人告诉我如何解决此问题,我将不胜感激。
答案 0 :(得分:2)
我一直在用这个敲我的头。我按照以下步骤解决了这个问题。
确保所有软件包的版本完全相同!甚至补丁版本似乎都失败了。所以如果你的 SQLite 是 3.1.1 而你的 SQLServer 是 3.1.2 它会失败
打开您的 csproj
文件并手动将软件包版本编辑为完全相同的版本。目前它的所有内容都是 5.0.3,但我在 Microsoft.VisualStudio.Web.CodeGeneration.Design
有 5.0.2
并且它失败了
<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" />
手动编辑 csproj
文件后,保存它/它们(顺便说一下,在所有 csproj
文件中进行更改)
我也做了这一步 - Nuget Package Manager Settings
-> Package Sources
取消选择本地文件夹,只确保选择远程文件夹
关闭 Visual Studio 2019。
删除解决方案文件夹中的 .vs
文件夹。
再次启动 Visual Studio,设置启动项目等
现在尝试创建一个脚手架控制器,它会再次安装软件包并且应该可以工作!
答案 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)