使用.NET升级助手将.NET Framework项目升级为.NET 6

目录
  • 概述
  • 环境准备
  • .NET Portability Analyzer安装和使用
  • 升级助手介绍和安装
  • 项目升级
  • 打开项目

概述

.NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NETFramework的项目升级为.NET 6.

升级条件:

  • Windows 操作系统
  • .NET 6 SDK
  • Visual Studio 2022 17.0 或更高版本

环境准备

①首先是VS2022下载,直接上微软官方网站,下载地址:

https://visualstudio.microsoft.com/zh-hans/downloads/

下载后,在线安装就行,如果之前有vs的其它版本也不用卸载,VS可以多个版本共存,安装的时候.NET 6的运行时默认会勾选安装,

②如果需要单独下载SDK和运行时,可以上微软官网,地址:

.NET SDKs downloads for Visual Studio (microsoft.com)

③安装好以后,可以在window命令窗口确认.NET 6是否安装正常,可以输入:

vs安装完成后,在新建项目时应该已经可以看到.NET6的框架了

.NET Portability Analyzer安装和使用

升级前最好先分析下你的项目依赖的类库是否支持最新的.NET平台,这里可以利用扩展工具.NET Portability Analyzer去完成(仅支持.NET 5以下版本):

扩展工具下载安装完成后,重启VS。在工程或者解决方案的右键菜单中,选择:Portability Analyzer Settings。在配置页面,选择要分析的.net 版本即可。

设置完成后,在VS的工程或者解决方案右键菜单中,选择:Analyze Assembly Portability,然后过一会儿就会出现结果。第二个Sheet页面详细的说明了不支持的API信息。

升级助手介绍和安装

我们之前的应用在 .NET Framework 上运行,现在想将它们移植到 .NET 6。当然你可以选择手动移植,但是更方便的方法是利用微软提供的升级助手去完成这个操作.

首先是升级助手安装,方法很简单,在命令窗口执行:

dotnet tool install -g upgrade-assistant

安装成功后,应该如下图所示:

同样地,由于 .NET 升级助手是作为 .NET 工具安装的,因此运行以下命令可以轻松地更新它:

dotnet tool update -g upgrade-assistant

项目升级

①分析:.NET 升级助手工具包括一种分析模式,它可以提供有关在升级开始之前可能需要进行的更改的见解。在命令窗口运行upgrade-assistant analyze命令,传入正在升级的项目或解决方案的名称。如下图:

输出中有很多内部诊断信息,但某些信息非常有用。请注意,分析模式指示升级将建议项目以net6.0-windows目标框架名字对象 (net6.0-windows) 为目标。这是因为解决方案引用的项目是 WPF 项目,是一种仅限 Windows 的技术。控制台应用程序可能会获得直接升级到 TFMnet6.0的建议,除非它使用某些特定于 Windows 的库。

如果报告了任何错误或警告,请在开始升级前处理这些错误或警告。

②升级:运行upgrade-assistant upgrade命令,传入正在升级的项目或解决方案的名称。

该工具将运行并显示它将执行的步骤列表。完成每个步骤后,该工具将提供一组命令,让用户应用或跳过下一步或其他选项。按Enter而不选择数字会选择列表中的第一项。

详细步骤可参考官网文档--链接地址:

https://docs.microsoft.com/zh-cn/dotnet/core/porting/upgrade-assistant-wpf-framework

打开项目

升级完成后,选择VS2022打开项目,我旧项目依赖的Caliburn.Micro版本是3.2的不支持.NET 6,它已经自动升级到最高版本

变更项:

①packages.config被迁移到项目.csproj文件;如下图

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net6.0-windows</TargetFramework>
    <OutputType>WinExe</OutputType>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <UseWPF>true</UseWPF>
    <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
    <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
    <PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.310801">
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Caliburn.Micro" Version="4.0.173" />
  </ItemGroup>
</Project>

②Caliburn.Micro:升级到最新支持.NET6的4.0版本;

③AssemblyInfo.cs:程序集版本按理在.NET6 中应该是在项目-》属性中设置,如下图:

但是升级助手升级后没有清理多余的项,那我就手动删除下,最后如下图:

运行项目

到此这篇关于使用.NET升级助手将.NET Framework项目升级为.NET 6的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET Core在WebApi项目中使用MiniProfiler分析Entity Framework Core

    安装配置MiniProfiler 在现有的ASP.NET Core MVC WebApi 项目里,通过Nuget安装MiniProfiler: Install-Package MiniProfiler.AspNetCore.Mvc MiniProfiler.EntityFrameworkCore 当然也可以通过Nuget Package Manager可视化工具安装 接下来就是如何配置和使用 MiniProfiler 了,总共分三步: 第一步,来到Startup.cs的ConfigureServ

  • 简单了解.NET Framework

    一.CLR集成了很多种语言,他们之间可以互相访问,是因为CLR建立的标准的类型集.元数据.公共执行环境. 由于各种语言间存在着极大的差别,如区分大小写,有的不支持unsigned.操作符重载或者参数可变方法, 所以想要创建这种让别的语言能访问的程序,自己所用的编程语言只能使用其它语言都支持的那些特性. 为了帮助我们更好的做到这一点,Microsoft定义一个"公共语言规范(Common Language Specification,CLS)". 二.CTS定义了一组语言编译器必须遵循的

  • .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别介绍

    前段时日微软(Microsoft)正式发布了.NET Core 2.0,在很多开发社区中反响不错.但还是有一些开发者发出了疑问,.NET Core.Xamarin..NET Standard和.NET Framework之间有哪些不同呢?本文就为大家简单描述一下这四者之间的区别. .NET Core .NET Core是免费.跨平台的,是托管框架的开源实现.它支持4种类型的应用程序:控制台.http://ASP.NET Core.云和通用Windows平台(UWP).Windows Forms和

  • 详解如何在ASP.NET Core中应用Entity Framework

    首先为大家提醒一点,.NET Core和经典.NET Framework的Library是不通用的,包括Entity Framework! 哪怎么办? 别急,微软为.NET Core发布了.NET Core版本的Entity Framework,具体配置方法与经典.NET Framework版本的稍有区别,下面的内容就为带领大家在ASP.NET Core中应用Entity Framework DB first. 注:目前部分工具处于Preview版本,正式版本可能会稍有区别. 前期准备: 1.推

  • Asp.NetCore3.1开源项目升级为.Net6.0的方法实现

    目录 概述 需求 目前解决方案 总结 概述 自从.Net6.0出来后,一直想之前开发的项目升级.Net6.0,有时想想毕竟中间还跨了个5.0版本,升级起来不知道坑大不大,最近抽时间对升级的方案做了些研究,然后将代码升级为.Net6.0.本质上来说我个人不太喜欢.Net6.0去掉main方法和startup,微软这么干让初学者学习的门槛其实是更高了,但阻挡不住我喜欢.Net6.0项目的发布包体积确实小等!来,开干吧! 首先我们看下asp.netcore3.1的program代码: public c

  • .Net Framework .Net  .NET Standard的概念及区别

    目录 .Net Framework .Net  .NET Standard的区别 一..NET Framework 二..Net 三..NET Standard 三.实际操作说明 .Net Framework .Net  .NET Standard的区别 一..NET Framework 在未来.NET Framework或许成为过去时,目前还是有很多地方在使用的.这一套体系对于做C#的老coder应该是再熟悉不过了,新入坑的也就用不着费力去学习. .NET Framework 是一种技术,支持

  • Win10下安装Sql Server 2014反复提示需安装.NET Framework 3.5 SP1的解决方案

    一.首先安装.NET Framework 3.5 离线安装方式: 1.装载相对应的系统安装盘,我是Windows 10 x64 企业版,所以装载Windows 10 x64 企业版安装镜像ISO,盘符为H. 2.以管理员身份运行命令提示符(Win键+X键,选择命令提示符(管理员)),输入以下命令: dism.exe /online /enable-feature /featurename:NetFX3 /Source:H:\sources\sxs 等待部署完成即可. 在线安装方式: 1.打开控制

  • 使用.NET升级助手将.NET Framework项目升级为.NET 6

    概述 .NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NETFramework的项目升级为.NET 6. 升级条件: Windows 操作系统 .NET 6 SDK Visual Studio 2022 17.0 或更高版本 环境准备 ①首先是VS2022下载,直接上微软官方网站,下载地址: https://visualstudio.microsoft.com/zh-hans/downloads/ 下载后,在线安装就行,如果之前有vs的其它版本也不用卸载,VS可以多个版本共存,安

  • 使用.NET升级助手将.NET Framework项目升级为.NET 6

    目录 概述 环境准备 .NET Portability Analyzer安装和使用 升级助手介绍和安装 项目升级 打开项目 概述 .NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.NETFramework的项目升级为.NET 6. 升级条件: Windows 操作系统 .NET 6 SDK Visual Studio 2022 17.0 或更高版本 环境准备 ①首先是VS2022下载,直接上微软官方网站,下载地址: https://visualstudio.microsoft.co

  • vue-cli3项目升级到vue-cli4 的方法总结

    这是我对以前配置的基于vue-cli3搭建的前端H5模板的升级,主要把vue-cli3项目升级为vue-cli4,并删除一些过时插件.插件版本升级到当前(2020-03-19)最高版本(升级了很多webpack插件版本),升级完后新加多域名代理配置,官方升级文档点我点我 按着官方的文档升级来也会碰到很多坑,

  • 已有的springcloud+mybatis项目升级为mybatis-plus的方法

    已有的springcloud+mybatis项目升级为mybatis-plus 项目模块目录 将mybatis依赖替换为mybatis-plus 修改配置文件 实体类如果与数据库不同名需要加上@TableName @Data @TableName("project_base") public class ProjectBase { @TableId(value = "id", type = IdType.UUID)//id看具体项目要求如果是后台生成则不需要type

  • 将Qt项目升级到Qt6吐血经验总结

    Qt的版本发布越来越频繁,Qt6发布已经有一段时间了,越来越多的人咨询之前的代码是否可以增加对Qt6的支持,包括开源的项目QWidgetDemo(一年时间超过2.6K star),近期百忙之中,对所有项目进行了Qt6的兼容升级,自此所有项目从Qt4兼容到了Qt6,耗时一个多月,总计更新调整代码行数一万多行.虽然更新工作量不是很大,但还是废了九牛二虎之力,毕竟项目数太多,光几十个项目作品中的其中之一自定义控件就188个子项目,为了方便自己也为了总结分享经验,特意整理了从Qt4兼容到Qt6的一些经验

  • 旧项目升级新版Unity2021导致Visual Studio无法使用的问题

    在项目开发过程中,不可避免的会升级开发工具.这次我在旧项目版本升级到新版Unity2021.2.x时,出现Visual Studio无法定位等问题.经过查阅资料将问题解决了,在这里为后来者提供一点帮助. Unity升级新版后,会出现的情况: 1.双击脚本会单独打开Visual Studio,类似下图 2.使用 Assets → Open C# Project,无法正常开启Visual Studio.可能直接打开项目目录 3.无法正常的生成解决方案,等等 4.新建工程可以正常使用 如有以上情况,可

  • Jenkins编译.NET Core、.NET Framework项目并远程部署到IIS

    目录 Windows 安装 Git WebDeploy Windows 从节点 .NET Core 处理 IIS 处理项目 Jenkinsfile .NET Framework 安装环境 .NET Framework SDK MSBuild Nuget 配置项目 前后端分类方案 Windows 我们先在 Windows 上安装好相应的环境. Jenkins 依赖于 JDK 11,请自行查找方法安装. 在 https://www.jenkins.io/download/ 中可以下载到 Window

  • 将Angular单项目升级为多项目的全过程

    目录 前言 开发环境 生成新工程 移动web项目 angular.json 公共模块 总结 前言 有时候在开发的过程中发现一个Angular项目不太够用,两个独立的项目又不太好复用.比如当前我们需要一个新的运行于微信小程序端的H5项目,但却在想在新的H5项目中应用原WEB项目中实体.Share.Serivce以及MockApi等模块.此时,便需要将原来的Angular项目简单做个升级. 情景: 当前已经有了一个运行于浏览器端的web项目. 在当前项目的基础上新增一个wechat项目. 将web项

  • react项目升级报错,babel报错,.babelrc配置兼容等问题及解决

    目录 react项目升级报错,babel报错,.babelrc配置兼容问题 遇到问题 最终解决方案 react运行报错TypeError 现记录一下思路 react项目升级报错,babel报错,.babelrc配置兼容问题 由于开发环境和项目版本的兼容问题,尝试升级了react-scripts后,一大堆问题接踵而至,翻遍了百度和csdn,往往解决了旧的又出现新的,或者开发没问题而打包时报错,现罗列一下遇到的主要问题和最终解决方案,以供参考. 遇到问题 digital envelope routi

随机推荐