1..net Core 创建WinFrom桌面应用程序

前提是安装好.netCore开发环境,以及最新的.netCore3.0以上

使用命令创建,打开CMD,输入:dotnet new winform -o TestWFCore

上述代码会创建一个名为TestWFCore的新项目。该项目位于c:\ Users(YourAccount)下

然后把这个项目拷贝出来,放到自己想放的目录下就行,最后使用Visual Studio 2019 打开即可,但是打开如下如图所示:

窗体设计器不可用,但是可以正常生成和运行。继续往下看

2..net Core窗体可视化设计器

下面是这个项目的csproj文件内容

把csproj的内容全部替换为下面代码:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"><PropertyGroup><OutputType>WinExe</OutputType><TargetFrameworks>net472;netcoreapp3.0</TargetFrameworks><UseWindowsForms>true</UseWindowsForms><LangVersion>7.3</LangVersion><AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects></PropertyGroup><ItemGroup Condition=" '$(TargetFramework)' == 'net472' "><Reference Include="System" /><Reference Include="System.Core" /><Reference Include="System.Xml.Linq" /><Reference Include="System.Data.DataSetExtensions" /><Reference Include="Microsoft.CSharp" /><Reference Include="System.Data" /><Reference Include="System.Deployment" /><Reference Include="System.Drawing" /><Reference Include="System.Net.Http" /><Reference Include="System.Windows.Forms" /><Reference Include="System.Xml" /></ItemGroup><ItemGroup Condition=" '$(TargetFramework)' == 'net472' "><!-- add From files to here to enable designer --><Compile Update="Form1.cs"><SubType>Form</SubType></Compile></ItemGroup>
</Project>

保存csproj文件,然后如vs有提示重新加载,就全部从新加载,要不然就关闭VS重新打开项目,就如下所示:

这样修改后,项目的属性中目标框架就变为了只读状态

因为设置了两个目标:

最终这样在生成项目的时候在debug目下会有两个目录:

netcoreapp3.0下的文件就是我们需要的可运行的所有文件。

说明:

  • 这是目前的临时解决方案,官方后续会肯定会在.netCore项目了里面支持可视化窗体设计的,而且创建项目应该也会有相应的模版。
  • 目前使用.net core开发的winform桌面应用程序也只能在windows系统上面运行,至于以后怎么在Mac或者Linux下运行官方暂时还么有进一步发表,但是可以肯定的是以后winform肯定能跨平台的。

3.移植.net framework桌面应用程序到.net Core

可以下载:.NET可移植性分析器这个visual studio扩展,用来分析你的.net framework项目是否适合移植到.netCore:

然后根据官方教程来吧,官方教程比较详细:将 Windows 窗体桌面应用程序移植到 .NET Core
我这里按个人理解总结一下吧,主要步骤是:

  • 创建一个空目录与需要移植的项目放在同一个目录下
  • 然后在空目录下只需要创建一个.net core的 csporj文件
  • 然后在把以前的项目关联到现在这个csporj文件上,这样以前那个项目的csporj文件可以正常打开设计窗体,从新的.sln文件打开项目(新的csporj文件)就能使用.net core 的特性
  • 最终效果是如果把两个项目同时打开,可以看到两边的代码是一样的,而两个项目使用的框架是不同的,一个是framewrok,一个是.netcore,因为代码文件都是同一个嘛,只是指定了不同的框架,但是移植后新写的.netcore的一些代码特性,原来的项目打开的话会有很多漂红的,不能用的,而且在新项目下面新建的cs文件,会在新项目的目录下(原framewrok项目的文件还是在之它自己的目录下),如下图:

这样的话只是对窗体的界面的调整设计比较方便。

移植后的项目是没有窗体的可视化设计界面的,但是我也从移植后的项目中引用了.net core 的一些nuget包,然后成功的运行并从服务器上获取了数据:

以上所有内容就是现阶段体验的情况,有一些东西也是东查一点资料西找一点,最终综合为自己所用了。

.net core WinFrom桌面应用程序 初体验相关推荐

  1. linux三大桌面,三大特性!Linux 7桌面正式版初体验(组图)

    三大特性!Linux 7桌面正式版初体验(组图) 作者: 51cto CNETNews.com.cn 2010-03-26 01:05:14 经过一段时间的测试,中科红旗Linux终于发布了正式版,并 ...

  2. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

  3. wpf xaml突然不能自动补齐代码_Xaml+C#桌面客户端跨平台初体验

    (给DotNet加星标,提升.Net技能) 转自:大头BigHeadcnblogs.com/Big-Head/p/12614118.html 前言 随着 .NET 5的到来,微软在 .NET跨平台路上 ...

  4. .NET Core 基于 Grafana Loki 日志初体验

    介绍 Loki: like Prometheus, but for logs. Loki是一个轻量级的日志系统,受到Prometheus项目的启发,由Grafana团队设计和开发,所以在Grafana ...

  5. 微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器(一)

    内容: 一.前言 二.相关概念 三.开始工作 四.启动项目起来 五.项目结构 六.设计理念 七.路由 八.部署线上后端服务 同步交流学习社区: https://www.mwcxs.top/page/4 ...

  6. 微信小程序初体验(上)- 腾讯ISUX社交用户体验设计成员出品

    微信小程序开放公测后一直很火,作为腾讯ISUX社交用户体验设计成员自然不能错过这样的好戏,下面就随ytkah一起来看看"小程序官方评测"吧,write by 腾讯ISUX练小习. ...

  7. Win手机安卓程序初体验

    老大说快看博客园,Windows手机可以装安卓程序了. 啊,真的么?可以在我的撸妹1520上愉快的玩COC了么?我还可以愉快的看小说,不对,是听小说,哈哈,安卓君的三千万程序兵,等着老夫来一一临幸你们 ...

  8. armbian n1 桌面_N1盒子初体验(降级+刷armbian)

    背景 在PDD上买了一台N1盒子玩,黑色版本.客服说黑色版本和白色版本硬件是一样的,仅仅是颜色的区别. 上手 本文用到的设备: 蓝牙鼠标(手边刚好一个蓝牙的) HDMI线 显示器 网线:刷armbia ...

  9. 微信小程序初体验-苏州实时公交API

    利用聚合数据API快速写出小程序,过程简单. 1.申请小程序账号 2.进入开发 3.调用API.比如"苏州实时公交"小程序,选择的是苏州实时公交API. 苏州实时公交API文档:h ...

最新文章

  1. stm32 cubemx hal 工程中 微秒延迟 delay_us
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(分组调色板填充、自定义调色板、灰度比例)实战(dot plot)
  3. [Vue] : 键盘修饰符
  4. USACO_2_1_The Castle
  5. PhpMyAdmin导入数据库大小限制?
  6. Ganglia集群监控系统搭建
  7. 卡牌特效: svg不规则倒计时动效
  8. laravel session redis 设置
  9. 递归函数里面又有2个调用自身的递归函数里面参数变化总结
  10. spring AOP实现——xml方法
  11. 随想录(搭建自己嵌入式项目的编译系统)
  12. 完整仿写鸿洋WanAndroid网站客户端
  13. 画矩形的方法_怎样画颜色绚丽的插画?
  14. yum install mysql-server 指定版本_mysql 指定版本安装
  15. MyCat分片规则之字符串hash解析算法分片
  16. HFSS天线设计实例_不同介质的BLE S11曲线
  17. 服务器上的文件夹访问被拒绝,修改windows文件权限,解决“拒绝访问”或无法删除的问题-文件访问被拒绝...
  18. Vue密码验证:密码必须由大写字母、小写字母、数字、特殊符号中的2种及以上类型组成
  19. 信号完整性七步曲:从PCB走线、信号反射到特性阻抗
  20. npm ERR While resolving: vue-admin-template@3.8.0问题的解决方案

热门文章

  1. C语言常用词汇(2)
  2. 徐一帆:数字化转型为主轴,LTD方法论思想创新引领产教融合教育
  3. Genio 500核心板,MT8385安卓核心板定制方案
  4. 宝塔多开redis端口
  5. 2020数学建模高教社杯建模思路笔记
  6. 程控电阻白皮书(一)
  7. 利用Gis绘制 直方图和趋势分析图
  8. 如何通过书籍学习Drupal7
  9. C语言程序之经典习题:给出一百分制成绩,要求输出成绩等级‘A‘B ‘C‘D‘E ‘,90 分以上为‘A”,80~89 分为‘B‘,70~79 分为‘C‘,60~69 分为‘D‘,60 分以下为‘E‘
  10. OpenResty LuaJIT和lua-resty-core(FFI vs Lua CFunction)介绍