返回顶部
首页 > 资讯 > 精选 >如何将Asp.NetCore3.1开源项目升级为.Net6.0
  • 887
分享到

如何将Asp.NetCore3.1开源项目升级为.Net6.0

2023-06-22 04:06:31 887人浏览 泡泡鱼
摘要

小编给大家分享一下如何将Asp.netcore3.1开源项目升级为.net6.0,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述自从.Net6.0出来后,一直想

小编给大家分享一下如何将Asp.netcore3.1开源项目升级为.net6.0,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

概述

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

首先我们看下asp.netcore3.1的program代码:

 public class Program    {        public static void Main(string[] args)        {            CreateHostBuilder(args).Build().Run();        }        public static IHostBuilder CreateHostBuilder(string[] args) =>        Host.CreateDefaultBuilder(args)            .ConfigureWEBHostDefaults(webBuilder =>                {                    webBuilder.UseStartup<Startup>();                });    }

其次我们看下ASP.net core6.0的 program代码

var builder = WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers();builder.Services.AddEndpointsapiExplorer();builder.Services.AddswaggerGen();var app = builder.Build();// Configure the Http request pipeline.if (app.Environment.IsDevelopment()){    app.UseSwagger();    app.UseSwaggerUI();}app.UsehttpsRedirection();app.UseAuthorization();app.MapControllers();app.Run();

0和3.1program的代码相比多出一个WebApplication类,作为更高一级的抽象!然后少了startup、main方法。

需求

因为asp.netcore3.1的项目我还是继续需要保持stratup,那么在AspNet.Net6.0里面如何继续保留呢?我看到官方文档里面有这么一句代码可以获取到webhost

var builder = WebApplication.CreateBuilder(args);builder.Host.ConfigureWebHostDefaults(webBuilder =>{    webBuilder.UseStartup<Startup>();});

心想这太完美了!然后运行报错说是不支持!!都可以拿到webhost了,为何不支持,有知道的朋友可以说一下,后面我准备去翻下源码瞅一瞅!

目前解决方案

第一种代码案例:

Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>{webBuilder.UseStartup<Startup>();}).Build().Run();

这方式大家肯定很熟悉,就是我直接不需要WebApplication,而且还比较优雅!

第二种代码案例:

var builder = WebApplication.CreateBuilder(args);var startup = new Startup(builder.Configuration);startup.ConfigureServices(builder.Services);var app = builder.Build();startup.Configure(app, app.Environment);app.Run();

有点啰嗦,但是能用,也使用了WebApplication!

基于上面这两种方案定性选择后,后面的项目就是升级第三方,速度就快多了!这里我还是以我之前的项目为例:

首先更改mvc项目的文件(csproj)

<Project Sdk="Microsoft.NET.Sdk.Web">    <PropertyGroup>        <TargetFramework>net6.0</TargetFramework>        <Nullable>disable</Nullable>        <ImplicitUsings>disable</ImplicitUsings>        <RootNamespace>ShenNius.Mvc.Admin</RootNamespace>        <GenerateDocumentationFile>False</GenerateDocumentationFile>        <SignAssembly>False</SignAssembly>    </PropertyGroup>    <PropertyGroup Condition="'$(Configuration)|$(PlatfORM)'=='Debug|AnyCPU'">      <NoWarn>1701;1702;CS1591</NoWarn>    </PropertyGroup>    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">      <NoWarn>1701;1702;CS1591</NoWarn>    </PropertyGroup>    <ItemGroup>        <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJSON" Version="3.1.10" />        <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.17" />        <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.9" />        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.5" />    </ItemGroup>    <ItemGroup>        <ProjectReference Include="..\ShenNius.Admin.API\ShenNius.Admin.API.csproj" />    </ItemGroup></Project>

注意两点:除了将框架目标更改为.Net6.0外,另外我分别将ImplicitUsings和Nullable设置为了disable。

目前VS2019上面只支持.Net6.0预览版,VS2022支持.Net6.0项目,为了将这个项目在VS2019和2022上都能运行,于是将ImplicitUsings设置为了disable,至于Nullable设置为disable是为了不想看见那烦人的警告!

接下来就是类库升级,那就更简单了。

<PackageReference Include="FluentValidation.AspNetCore" Version="10.3.5" />

将之前FluentValidation.AspNetCore从8.0版本升级为10.3.5的版本,当然它的使用方式也发生了一些小变化!

#3.1代码    public class LoginInputValidator : AbstractValidator<LoginInput>    {        public LoginInputValidator()        {             CascadeMode = CascadeMode.StopOnFirstFailure;            RuleFor(x => x.LoginName).NotEmpty().WithMessage("请填写用户名称");            RuleFor(x => x.PassWord).NotEmpty().WithMessage("请填写用户密码");            RuleFor(x => x.NumberGuid).NotEmpty().WithMessage("用户编号必须传递");        }    }
#6.0代码CascadeMode = CascadeMode.Stop;
#3.1mvc验证代码      mvcBuilder.AddFluentValidation(options =>            {                var types = Assembly.Load("ShenNius.Share.Models").GetTypes()                 .Where(e => e.Name.EndsWith("Validator"));                foreach (var item in types)                {                    options.ReGISterValidatorsFromAssemblyContaining(item);                }               options.RunDefaultMvcValidationAfterFluentValidationExecutes = false;            });#6.0 mvc验证代码                  mvcBuilder.AddFluentValidation(options =>            {                var types = Assembly.Load("ShenNius.Share.Models").GetTypes()                 .Where(e => e.Name.EndsWith("Validator"));                foreach (var item in types)                {                    options.RegisterValidatorsFromAssemblyContaining(item);                }                options.DisableDataAnnotationsValidation = true;            });

剩下的也是一些第三方类库升级的事情,基本上凡是nuget以 microsoft开头的3.1的包往6.0升级就对了。

以上是“如何将Asp.NetCore3.1开源项目升级为.Net6.0”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何将Asp.NetCore3.1开源项目升级为.Net6.0

本文链接: https://lsjlt.com/news/302313.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何将Asp.NetCore3.1开源项目升级为.Net6.0
    小编给大家分享一下如何将Asp.NetCore3.1开源项目升级为.Net6.0,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述自从.Net6.0出来后,一直想...
    99+
    2023-06-22
  • Asp.NetCore3.1开源项目升级为.Net6.0的方法实现
    目录概述需求目前解决方案总结概述 自从.Net6.0出来后,一直想之前开发的项目升级.Net6.0,有时想想毕竟中间还跨了个5.0版本,升级起来不知道坑大不大,最近抽时间对升级的方...
    99+
    2024-04-02
  • 如何将项目升级到vue-cli3
    这篇文章将为大家详细讲解有关如何将项目升级到vue-cli3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 原以为升级vue-cli3的路线是这样的:创建vue-cl...
    99+
    2024-04-02
  • 如何将Qt项目升级到Qt6
    小编给大家分享一下如何将Qt项目升级到Qt6,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!直观总结增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管...
    99+
    2023-06-20
  • 将Angular单项目升级为多项目的全过程
    目录前言开发环境生成新工程移动web项目angular.json公共模块总结前言 有时候在开发的过程中发现一个Angular项目不太够用,两个独立的项目又不太好复用。比如当前我们需要...
    99+
    2024-04-02
  • 怎么将.NET Framework项目升级为.NET 6
    本篇内容主要讲解“怎么将.NET Framework项目升级为.NET 6”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么将.NET Framework项目升级为...
    99+
    2023-06-29
  • 怎么将springcloud+mybatis项目升级为mybatis-plus
    这篇文章主要讲解了“怎么将springcloud+mybatis项目升级为mybatis-plus”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么将springcloud+mybatis项...
    99+
    2023-06-08
  • 使用.NET升级助手将.NET Framework项目升级为.NET 6
    目录概述环境准备.NET Portability Analyzer安装和使用升级助手介绍和安装项目升级打开项目概述 .NET6 正式版本已经发布有一阵子了,今天我就体验一下如何将.N...
    99+
    2024-04-02
  • SpringBoot项目将mybatis升级为mybatis-plus的方法
    最近做的项目是用的开源的一个项目改造得来的,而且项目是19年就已经停止维护了,项目的年龄比我工作经验还长,而且我们要在原来的接口上进行改动,但为了兼容前端,所以很多接口改起来很麻烦,...
    99+
    2023-01-09
    mybatis升级为mybatis-plus
  • gitee如何设置项目为开源
    本篇内容介绍了“gitee如何设置项目为开源”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、注册gitee账号并创建项目首先需要在Gite...
    99+
    2023-07-05
  • github如何开源项目
    近年来,开源软件开发已经成为了一种趋势。GitHub作为开源社区的重要组成部分,已经成为程序员们分享自己的代码和技术的必要之地。那么,如何在GitHub上开源项目呢?下面,我们将为大家介绍这个过程。第一步:注册GitHub账号首先,你需要访...
    99+
    2023-10-22
  • 如何将苹果imacwin7升级为win10系统
    苹果mac系统是一个相对稳定的操作系统,用于苹果电脑。然而,很多苹果电脑用户对于mac系统不太熟悉,因此他们选择在苹果电脑上安装windows系统。一些朋友想在苹果mac上升级win7win10系统。以下小系列将指导您如何在苹果iMac上将...
    99+
    2023-07-15
  • ASP.NET MVC2项目如何升级到MVC 3 RC
    这篇文章主要讲解了“ASP.NET MVC2项目如何升级到MVC 3 RC”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET MVC2项目如何升级到MVC 3 RC”吧!要将现有的...
    99+
    2023-06-17
  • 手把手教你如何将html模板资源转为vuecli项目
    目录1.目标2.具体步骤1. 通过vueclie 创建项目2. 将静态资源放到vue项目的 public 文件夹中3.将html部分 ,copy至template里面4.修改css样...
    99+
    2023-05-17
    html项目转vue项目 html转成vue html文件怎么换成vue
  • Vue cli如何生成Vue项目的webpack4升级
    小编给大家分享一下Vue cli如何生成Vue项目的webpack4升级,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述相比于...
    99+
    2024-04-02
  • 如何检测和升级项目中Node依赖
    这篇文章主要介绍如何检测和升级项目中Node依赖,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在现代前端开发中,一个项目往往依赖众多第三方包,多则几十个甚至过百,那么如何检测及升级这些依赖就成为了难题。npm out...
    99+
    2023-06-14
  • 项目中如何配置 Maven 为国内源
    目录 1. 创建出一个 Maven 项目 2. 打开项目配置界面, 检查并配置国内源 2.1 打开配置界面 (当前项目界面和新项目配置界面) 2.2 搜索 "Maven" 2.3 设置 setting.xml (给此 xml 中添加国内源)...
    99+
    2023-10-24
    maven java 开发语言
  • 如何实现将一个eclipse java项目改造为java web项目
    如何实现将一个eclipse java项目改造为java web项目?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。eclipse java工程改造为java w...
    99+
    2023-05-31
    eclipse java java web ava
  • java如何将java项目生成为jar文件
    Java项目生成jar包(1)、“项目”右键->"Export..."导出,弹出“导出设置”窗口如下:(2)、选择要打包的文件,如下图:(3)、设置导出的提示信息,如下图:(4)、指定程序入口,如图:(5)、查看结果,如图:通过jar命令。...
    99+
    2016-01-31
    java
  • 如何在CodePlex上开源一个项目的
    本篇文章给大家分享的是有关如何在CodePlex上开源一个项目的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。项目并不是简单的打包就上传了,而是进行了下列的一些修改:注释信息、...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作