.netframework迁移到.netcore方法

这篇具有很好参考价值的文章主要介绍了.netframework迁移到.netcore方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 .netframework程序迁移到.netcore5.0

对于.netframwork程序想要升级为.netcore5.0的方法,微软官方也给出了方法见 https://docs.microsoft.com/en-us/dotnet/desktop/winforms/migration/?view=netdesktop-5.0,我这里总结记录一下.

1.首先要检查自己应用程序适不适合迁移

.netframework框架和.netcore框架有很大的不同,首先得确保自己当前基于.netframework程序迁移到.netcore上要改变哪些东西。下载迁移分析工具NET Portability Analyzer ,这个可以到visual Studio的管理扩展中进行下载,这个分析工具的作用就是告诉我们,从当前版本升级到.netcore5.0版本,你的程序需要改变的库或者是Nuget包,因为升级后.netcore程序可能不支持以前的的Nuget包或者库.
.netframework迁移到.netcore方法
安装完成后,先要进行迁移框架的选择,比如我先迁移到.netcore5.0上面去
.netframework迁移到.netcore方法.netframework迁移到.netcore方法
开始对工程开始进行升级前分析
.netframework迁移到.netcore方法
分析完成后会有生成的报告结果
.netframework迁移到.netcore方法
分析和解释分析报告
Portability Summary
.netframework迁移到.netcore方法
Details(分析细节部分)
.netframework迁移到.netcore方法
细节分析罗列了在目标框架下会确实的API函数

  • Target type: 目标平台下缺失的API
  • Target member:目标平台下缺失的方法
  • Assembly name:.NET Framework下存在已经缺失的API

Missing Assemblies(缺失的程序集)
比如我这里的EntityFramework.dll,这个程序集只支持.netframework4.8的,在.netcore5.0下面是不受支持的,所以报告中会显示出这一项,但是在net5.0下可以用Microsoft.EntityFrameworkCore
下替换,因此还是可以进行迁移。.netframework迁移到.netcore方法

2.修改项目的工程文件(.csproj)

net5使用sdk风格的项目文件,不会加载net Framework使用的Visual Studio项目文件,因此需要修改工程文件.

2.1首先,在解决方案中要迁移的工程项目进行卸载,然后对项目文件进行编辑

.netframework迁移到.netcore方法
.netframework迁移到.netcore方法
把项目文件中的内容都剪切到别的地方(之后还有用)

2.复制以下文件到项目文件中
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

上述的XML文件给出了工程文件project的基本结构,但是他并没有包含旧工程文件中的工程名相关的信息,因此需要拷贝旧工程文件下的RootNamespaceAssemblyName所在标签中的行的内容(比如我这里面的SqlDemo工程)

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <!--工程名相关的信息-->
    <RootNamespace>SqlDemo</RootNamespace>
    <AssemblyName>SqlDemo</AssemblyName>
  </PropertyGroup>
</Project>
3.复制旧工程中 < ItemGroup > 下包含 < ProjectReference > or < PackageReference >< PropertyGroup > 到新工程的下的 < ItemGroup >(位于< PropertyGroup >后面),并且可以移除旧版本中的< project >和 < name >标签
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <!--工程名相关的信息-->
    <RootNamespace>SqlDemo</RootNamespace>
    <AssemblyName>SqlDemo</AssemblyName>
  </PropertyGroup>
  
    <ItemGroup>
       <!--包含另外一个工程的路径,移除旧版本中的<project>和<name>标签-->
      <ProjectReference Include="..\SqlDataSetLib\SqlDataSetLib.csproj"/>
    </ItemGroup>
    <ItemGroup>
    <!--引用的Nuget包名或者某个外部程序集以及填写版本号,不支持的程序集不要引进来-->
      <PackageReference Include="Microsoft.EntityFrameworkCore">
         <Version>3.1.4</Version>
      </PackageReference>
   </ItemGroup>
   
</Project>
4.复制旧版本中的资源和设置项标签

旧版本中如果有设置项的资源,如下面所示的这样,直接把include改为Update加入到新工程中

<ItemGroup>
<!--设置文件-->
  <None Update="Properties\Settings.settings">
    <Generator>SettingsSingleFileGenerator</Generator>
    <LastGenOutput>Settings.Designer.cs</LastGenOutput>
  </None>
  <Compile Update="Properties\Settings.Designer.cs">
    <AutoGen>True</AutoGen>
    <DependentUpon>Settings.settings</DependentUpon>
    <DesignTimeSharedInput>True</DesignTimeSharedInput>
  </Compile>
</ItemGroup>

复制资源文件,同理,把资源文件的include替换成Update即可

<ItemGroup>
  <EmbeddedResource Update="Properties\Resources.resx">
    <Generator>ResXFileCodeGenerator</Generator>
    <LastGenOutput>Resources.Designer.cs</LastGenOutput>
  </EmbeddedResource>
  <Compile Update="Properties\Resources.Designer.cs">
    <AutoGen>True</AutoGen>
    <DependentUpon>Resources.resx</DependentUpon>
    <DesignTime>True</DesignTime>
  </Compile>
</ItemGroup>

最后把保存编辑的.csproj文件,然后点击重新加载项目,即可迁移到.net5.0.文章来源地址https://www.toymoban.com/news/detail-439528.html

到了这里,关于.netframework迁移到.netcore方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IIS8.5反向代理实现80端口访问多个.NetCore程序

          目前仅有一台域名备案并开通80端口的服务器,而有多个部署在此服务器的.NetCore程序需要与微信进行独立的集成(同一个认证微信服务号),因此需要实现非80端口反向代理外网80端口,例如通过a.test.com和b.test.com即可访问当前服务器的8028和8029端口上部署的程序。  

    2024年02月10日
    浏览(39)
  • VS2022 C# 项目无法选择.netframework 4.0 的问题解决

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、问题说明 二、解决步骤 1. 2.读入数据 由于客户端可能需要兼容XP系统,.netframework 最高能用到4.0,新电脑安装了VS2022 , 突然发现已不再支持 .netframework 4.0      路径如下 C:Program Files (x

    2024年02月11日
    浏览(44)
  • C#中LINQtoSQL只能在.NetFramework下使用,不能在.net 下使用

    目录 一、在net7.0下无法实现LINQtoSQL 1.VS上建立数据库连接 2.VS上创建LINQtoSQL 二、在.NetFramework4.8下成功实现LINQtoSQL 1.VS上建立数据库连接 2.VS上创建LINQtoSQL 三、结论 四、理由         本文是个人观点,因为我百般努力在.net7.0下无法实现LINQtoSQL的使用,而在.NetFramework4.8却能

    2024年02月06日
    浏览(38)
  • 在.NetFramework中使用Microsoft.Extensions.Configuration 读取Json和XML

    //需要安装 Microsoft.Extensions.Configuration; //Microsoft.Extensions.Configuration.json //Microsoft.Extensions.Configuration.xml //Microsoft.Extensions.Configuration.Binder; //注意: json 的key中不能出现冒号\\\":\\\" //XML的 Atrribute中不能出现 “Name”, 且不能使用根节点(从第一个子节点开始) 实体类: XML: Json:

    2024年02月11日
    浏览(41)
  • 必须使用“角色管理工具”安装或配置Microsoft.NETFrameworks 3.5 SP1

      必须使用角色管理工具 安装或配置microsoft.net framework 3.5 sp1   操作系统:windows 2008 R2

    2024年02月16日
    浏览(45)
  • mongodb数据迁移的方法

    这个命令可以备份mongo数据(mongo数据库中的数据备份转换为文件) 这个命令可以恢复mongo数据(将以上命令转换出的文件存储到指定的mongo数据库中) HOST: mongo数据库的ip地址或对应的域名 PORT: mongo数据库对应的端口(默认是27017) USERNAME: mongo数据库的用户名 PASSWORD: mongo数据

    2024年02月08日
    浏览(27)
  • Docker数据目录迁移方法

    服务器上安装的docker服务,数据默认存储在/var/lib/docker目录,由于该目录在系统盘,随时间时间的推移,docker占用的空间越来越大,最把系统盘挤用的只剩下的1G,很容易磁盘100%,想着把docker占用的目录迁移到非系统盘目录,想着就立即动手 启动 Docker 之后,Docker 写入的路径

    2024年02月10日
    浏览(48)
  • 迁移到云原生:如何使用微服务迁移应用程序

    企业遇到大规模部署和监督生产中的应用程序的任务。幸运的是,我们可以使用大量技术和工具。然而,从传统的,整体的结构转变为云态一个人提出了自己的障碍。在这里,您会发现将应用程序从整体设置转移到基于微服务的体系结构时要进行的基本初始步骤列表。 Compa

    2024年02月03日
    浏览(56)
  • 如何在电脑更换新硬盘后迁移window11系统?2种迁移方法分享!

    随着时间的流逝,数据量也在逐渐增多,就会导致您的硬盘空间也变得越来越小,因此系统运行速度可能会受到一些影响而越来越慢。为了摆脱这种情况,您可以选择升级到更大的硬盘来使计算机获取更大的磁盘空间,或者迁移系统到固态硬盘以获取更棒的系统运行性能与程

    2024年02月09日
    浏览(57)
  • 另一种迁移xxl-job任务的方法,适合不满足数据迁移条件

    以为多个项目组同时使用一个xxl-job,同时涉及到版本提升,由此不太满足数据库数据迁移,所以这里提供另一种解决办法 使用工具:postman,json转excel,excel 核心:excel拼接: 1.使用f12抓取xxl任务访问列表请求; 2.使用postman import将curl导入,并修改请求参数,将所有的内容一次

    2023年04月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包