【问题标题】:How to Stop Visual Studio from Automatically Updating Dependencies while scaffolding Identity in ASP .NET Core如何在 ASP .NET Core 中构建标识时阻止 Visual Studio 自动更新依赖项
【发布时间】:2021-05-20 15:56:18
【问题描述】:

我正在使用 asp.net core 3.1 开发一个项目,我必须使用 Visual Studio 2019 搭建 Identity。这是来自 .csproj 文件的代码 <TargetFramework>netcoreapp3.1</TargetFramework> 所有依赖项都具有相同的版本,即 3.1.0,但是当我尝试搭建 Identity Visual Studio 时,会自动将 <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" /> 更新为最新的支持版本。我尝试将我的项目更新为 asp.net 5.0,但随后将包更新为 <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />。 Visual Studio 创建的版本不匹配会导致以下错误

运行选定的代码生成器时出错:'包还原失败。回滚 [Project Name] 的包更改

Error Message

我尝试使用 NuGet 包管理器更新所有已安装的包,但没有任何效果。 如何防止 Visual Studio 在脚手架之前更新依赖项?或如何同步这些版本。

Before Running Scaffolding

After Running Scaffolding

【问题讨论】:

    标签: c# asp.net visual-studio asp.net-core visual-studio-2019


    【解决方案1】:

    这是来自 .csproj 文件的代码 <TargetFramework>netcoreapp3.1</TargetFramework> 所有依赖 具有与 3.1.0 相同的版本,但是当我尝试搭建 Identity 时 Visual Studio 会自动将<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" /> 更新到支持的最新版本。

    是的,你是对的。在 Asp.net Core 3.1 应用程序中,如果我们使用 Scaffold Identity,它将添加 3.1.5 版本的 Microsoft.VisualStudio.Web.CodeGeneration.Design 包。我们可以使用这个版本包成功生成身份页面。如果你还想使用 3.1.0 版本,只需通过 NuGet 包管理器更改它(选择所需版本并单击更新按钮):

    要从 ASP.NET Core 3.1 迁移到 5.0,首先,请确保您使用的是Visual Studio 2019 16.8 or later(我建议您可以使用最新版本)和.NET 5.0 SDK or later。更多详情见Migrate from ASP.NET Core 3.1 to 5.0

    然后,您应该将目标框架从netcoreapp3.1 更新为net5.0。 myapplication.csproj 文件中的代码:

    <Project Sdk="Microsoft.NET.Sdk.Web">
    
      <PropertyGroup>
        <TargetFramework>net5.0</TargetFramework> 
      </PropertyGroup>
    
      <ItemGroup> 
            //...
      </ItemGroup> 
    </Project>
    

    之后,在 NeGet Package Manager 面板中,选中 Select All Packages 并单击 Update 按钮,它会将所有包更新到最新版本。

    结果如下:

    最后,如果还是遇到Package restore failed错误,尝试一一更新包。由于依赖关系,您可以尝试更改更新顺序。

    【讨论】:

    • 感谢您的宝贵时间和详细的回答。迁移到 .NET 5 对我不起作用,更新 3.1 和 5.0 版本中的包也没有。我正在使用 Visual Studio 2019 版本 16.8.5 对我有用的是使用 .NET Core CLI 而不是使用 Visual Studio 来搭建身份。没有为我工作。 Add > New Scaffolded Item > Select Identity > Add 以下命令对我有用。 dotnet aspnet-codegenerator identity -dc MyApplication.Data.ApplicationDbContext 会通知您是否再次出现问题。
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多