步练师无惨全彩图片,亚丁湾星际之门,吉利配件
.net core 3.0开始,桌面端支持wpf了。很多.net framework的项目已经跑了一阵子了,不是很有必要支持.net core,不过最近用一个程序,为了贯彻一些c# 8的特性,需要升级项目到.net core 3.1。
参考,需要这么几步:
原来的nuget使用packages.config进行管理,.netcore已经全面使用<packagereference>
的形式,因此需要升级。
升级会弹出一个对话框提示,全部勾选上,直接升级。最后弹出一个升级报告。
vs扩展市场查找并运行.net portability analyzer
以分析项目。
报告如果分析结果是
这个样子的,那就没问题。特别关注一下.net core,如果不支持,需要想想别的办法:
最关键的一步来了,需要升级项目文件以便于支持.net core。其实步骤很简单,用vs生成一个基于.net core的wpf项目,然后,直接将csproj文件拷贝到原来的项目文件夹,使用vs添加现有项目,选择这个文件,可以发现原来的东西都自动添加进来了。
不过有的项不会自动处理,我们还需要手动对照一下原来的csproj文件和新的项目csproj文件。看看是不是缺失了一些什么内容。
packagereference不会自动处理,引用的其他项目也不会,我们需要手动粘贴进来。
resource也不会自动添加,可以使用通配符语法<resource include="images\*.png" />
程序的图标需要重新添加。
编译之后出现这个错误。
.net core程序会自动根据项目属性生成这个信息,如果还有assemblyinfo.cs文件,就会冲突。二选一解决这个问题
<generateassemblyinfo>false</generateassemblyinfo>
,禁用自动生成的功能。有的项目处理完毕之后还有生成错误,可以考虑引用microsoft.windows.compatibility
来解决一些兼容性的问题。
我的项目出现了很多警告,提示项目package不兼容。
如果包持续有人维护的话,一般情况重新安装一下对应的包解决这些问题。
update-package -reinstall
还不行的话,那么有概率你的程序不能正常运行。不想冒险,就需要找找替代了。
比如我手头上的程序,引用了cookcomputing.xmlrpcv2
这个包,不支持.net core,但是在网上搜索一下,可以发现kveer.xmlrpc
是一个移植,直接换就好了。
继续运行,发现一直提示资源文件错误,wpf的properties.resources
不好用了...有几种办法可以解决。
最后编译,我这边只有几个警告,没有错误了。鉴于程序可以正常运行,我这有空再优化吧。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论