如何将Winform移植到.NET Core 3.0
参考将现有应用程序移植到.NETCore3.0
环境
首先要下载.NETCore3.0与VisualStudio2019
编辑csproj文件
WinExe netcoreapp3.0 true false
恢复NuGet包
找到package.config文件右击选择UpgradetoPackageReference但是我会弹框
我也不知道该怎么解决,搜了一圈没搜到,如果有知道的可以在评论区告诉我,于是我就老老实实将
改为下列代码,并写到csproj文件中在project的子节点中
增加引用
同时,有些dll是.netframework独有,而.netcore因为各种原因并没有引用进来的。参考Portingto.NETCore。如以下几个是需要重新引用的:
- System.Data。虽然基础层已经是.NETCore的一部分,即提供者模型和SQL客户端,但目前还没有一些功能,例如架构支持和DataTable/DataSet。
- System.DirectoryServices。.NETCore目前不支持与LDAP或ActiveDirectory通信。
- System.Drawing。虽然严格来说它是客户端API,但许多开发人员在服务器上使用绘图API来提供缩略图生成或水印。我们目前在.NETCore中不支持这些API。
- System.Transactions。虽然ADO.NET支持事务,但不支持分布式事务,其中包括环境事务和登记的概念。
- System.Xml.Xsl和System.Xml.Schema。.NETCore支持XmlDocumentLinqXDocument,包括XPath。但是,目前不支持XSD(XmlSchema)或XSLT(XslTransform)。
- System.Net.Mail。目前不支持使用这些API从.NETCore发送电子邮件。
- System.IO.Ports。.NETCore目前不包括与串行端口通信的功能。
- System.Workflow。WindowsWorkflowFoundation(WF)目前在.NETCore上不可用。
- System.Xaml。在创建UWP应用程序时,开发人员将使用WinRTXAMLAPI。因此,.NETCore目前不包含托管XAML框架,该框架包括解析XAML文档和实例化描述的对象图的能力。
在我的项目中,我引用了这些:
增加其他文件
增加了如下几个项目本身就有的文件
SettingsSingleFileGenerator Settings.Designer.cs Designer
最终的csproj文件
WinExe netcoreapp3.0 true false SettingsSingleFileGenerator Settings.Designer.cs Designer
移植过程中遇到的问题
.netcore不支持Access数据库
我的代码中有带Access数据库相关代码,都报了缺少程序集引用的错误,因此我初步增加了引用
但是还是没用,参考了.NETCoreDataAccess,发现是.netcore不支持Access的原因,因此都把这段代码用条件编译代码#if给包起来了。
缺少hostfxr.dll文件
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。