c# - 更新 net5.0 .csproj 到 net6.0

标签 c# .net asp.net-core .net-core .net-6.0

我当前的 .csproj 具有以下项目统计信息:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <UserSecretsId>aspnet-XYZ</UserSecretsId>
  </PropertyGroup>

我的 ItemGroup 中也有几个条目指示 "Version="5.0.10"

由于我正在升级,所以我卸载了旧的运行时/框架和

dotnet --list-runtimes

显示:

Microsoft.AspNetCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.21 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

手动更改项目条目不成功。

有没有办法将这个项目指向新的 SDK 安装?

最佳答案

Visual Studio

如果您使用的是 Visual Studio,您需要做的就是:
solution explorer 中右键单击您的项目,Properties > Application > Target Framework,然后选择 .NET 6.0。 (目前,这仅适用于 VS 2022)

要更新您已安装的所有软件包:
solution explorer 中右键单击您的项目,Manage NuGet packages... > Update 选项卡 > 选中 Select all packages > 点击 Update 按钮。

手动

您需要做的就是更改 .csproj 文件,例如:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    ...
  </PropertyGroup>
  ...
</Project>

更多信息 Migrate from ASP.NET Core 5.0 to 6.0

要更新您已安装的所有软件包,请使用此 PowerShell 脚本:

$regex = 'PackageReference Include="([^"]*)" Version="([^"]*)"'

ForEach ($file in get-childitem . -recurse | where {$_.extension -like "*proj"})
{
    $packages = Get-Content $file.FullName |
        select-string -pattern $regex -AllMatches | 
        ForEach-Object {$_.Matches} | 
        ForEach-Object {$_.Groups[1].Value.ToString()}| 
        sort -Unique
    
    ForEach ($package in $packages)
    {
        write-host "Update $file package :$package"  -foreground 'magenta'
        $fullName = $file.FullName
        iex "dotnet add $fullName package $package"
    }
}

基于Rolf Wessels's answer .

但我建议使用 dotnet-outdated工具。

关于c# - 更新 net5.0 .csproj 到 net6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70060731/

相关文章:

c# - 变量声明后的括号

.net - 从Powershell表单文本框中删除字符限制

c# - 通过代理连接到 IRC (.NET)

c# - 对 DropdownList 使用枚举 : Missing a using directive or assembly reference

c# - 使用WPF中的MVVM从UserControl冒泡事件。

c# - 如何在集成测试项目中替换中间件

c# - 制作新的参数化线程

c# - 使用 UI 进行后台工作

c# - 如何在 Entity Framework Core 3.1 中对自定义对象执行原始 SQL 查询,而不需要创建表的迁移?

asp.net-core - OpenId Connect更新SPA中的access_token