VS2017 Community 不能创建 dotnet core 桌面应用程序吗?

小灰狼 2021-03-11 11:13:02
到微软下了几次社区版,装下来都是VS2017,不是2019
安装完成之后,发现只能创建 dotnet core 的控制台应用程序,不能创建桌面应用程序

我的项目基本需求:
1、能在 linux 上跑,当然 linux 肯定是有桌面版的,操作系统有窗体
2、应用程序有窗体,还有托盘图标
3、能进行TCP和串口/usb通信
4、能使用dotnet framework中 HttpListener 类,或者相似功能的类,我的 很多功能依赖于它提供的API
5、线程支持
...全文
1160 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztltgg 2021-03-15
  • 打赏
  • 举报
回复
控制窗体本身位置的代码,这个逻辑上好像垮不了平台,如果能接受每次手工移动窗体到第二个屏幕,可能还可以通过浏览器两个浏览器实现,用一些长连接的技术应该延迟也能控制
小灰狼 2021-03-15
  • 打赏
  • 举报
回复
引用 11 楼 hztltgg 的回复:
引用
某些客户端可以用 Processor 启动第三方提供的进程 需要通过USB连接一些设备,厂家提供了DLL
这些问题先看看怎么解决吧,他们能不能跨平台? 最好的方式还是web化,你的功能都通过web api提供,界面能用浏览器实现最好,不行就跨平台的ui,比如qt什么的开发,再不济各个平台单独做一个壳也还容易
Web化可能就要砍掉分屏的那个功能了,我做的是客户端,象在终端卖车票的那种,售票员在自己的界面上操作,然后一个小显示器接在同一台电脑上,显示给卖票的人车次、时间、金额 、实收和找回金额。 QT 就算了,我知道QT适合做这些,但那要从头学,太麻烦了
hztltgg 2021-03-12
  • 打赏
  • 举报
回复
引用
某些客户端可以用 Processor 启动第三方提供的进程 需要通过USB连接一些设备,厂家提供了DLL
这些问题先看看怎么解决吧,他们能不能跨平台? 最好的方式还是web化,你的功能都通过web api提供,界面能用浏览器实现最好,不行就跨平台的ui,比如qt什么的开发,再不济各个平台单独做一个壳也还容易
小灰狼 2021-03-12
  • 打赏
  • 举报
回复
引用 6 楼 hztltgg 的回复:
[quote=引用 4 楼 小灰狼 的回复:][quote=引用 1 楼 X-i-n 的回复:].net core的桌面应用也是windows应用。跨平台默认只能开发控制台应用,如果需要开发跨平台的GUI程序,可以看看mono或者Avalonia。
你的意思是说,dotnet core 的windows应用程序无法在linux上运行?[/quote] 是的[/quote]
引用 2 楼 hztltgg 的回复:
官网下载的肯定是2019,不知道你哪儿下载的 https://visualstudio.microsoft.com/zh-hans/downloads/ linux上肯定是没有窗体的,WinForm 是 Windows Form,WPF 是 Windows Presentation Foundation,都离不开Windows 。 你的程序还是要和硬件交互的为主,跨平台的框架也可能不适合你,哪些更多是在界面上的跨平台。
引用 9 楼 hztltgg 的回复:
我感觉还是别换dotnet core了吧,没啥意义
有别的方案也行啊 由于整个项目是政府的,要求软硬件尽量国产化。在以后操作系统里,客户端可能会用国产的UOS,这是 linux 的一个发行版而已。
X-i-n 2021-03-11
  • 打赏
  • 举报
回复
.net core的桌面应用也是windows应用。跨平台默认只能开发控制台应用,如果需要开发跨平台的GUI程序,可以看看mono或者Avalonia。
hztltgg 2021-03-11
  • 打赏
  • 举报
回复
我感觉还是别换dotnet core了吧,没啥意义
小灰狼 2021-03-11
  • 打赏
  • 举报
回复
引用 3 楼 hztltgg 的回复:
引用
去年的WinForm项目,简单的功能,用 HttpListener 打开本地8123端口进行监听,然后根据接入的URL信息调用本地第三方提供的DLL 考虑要运行在XP上,以及安装程序制作方便,还有其它一些原因,当时我用 VS2010 开发,用 dotnet framework 4.0 profile 现在要考虑让它运行在 linux 上,而 dotnet core 可跨平台。想咨询各位,能用 dotnet core 编译吗,或者有更好的解决方案
看你另外一个问题的提问,我觉得用core的话,做成一个网站,反正core网站也是不依赖iis的,监听也能解决,控制通过浏览器,界面做成网页就行。关键是你的第三方DLL到底能不能支持跨平台?不支持的话啥都是白瞎
非常感谢! 没错,这是同一个问题! 现在项目的情况是,项目是一个WEB应用程序,客户端则解决了几个问题: 1、因为有一部分客户端,需要通过USB连接一些设备,厂家提供了DLL,而现在新版本的浏览器调用DLL很麻烦,所以做个Windows应用程序,在客户端开个HTTP端口,让浏览器通过WEB请求访问它,再通过这个Windows程序调用DLL 2、某些客户端可以用 Processor 启动第三方提供的进程 3、分屏,就象火车站卖票那样,售票员看到的界面很丰富,然后有一个小显示屏,用很大的字告诉窗口前的客户,你买的是哪天哪次车的票,应收/找回金额。在Windows下的做法是,客户端电脑接两个显示器,客户端Windows程序收到对应请求后,启动一个Windows窗口展示在小显示器上,窗体内嵌一个WebBrowser。 如果客户端用网页的话,第三个功能可能就很困难了
hztltgg 2021-03-11
  • 打赏
  • 举报
回复
事实上,不仅 winform用的控件不支持,连 System.Drawing 里哪些绘图api都没有,因为这些画点画线的绘图api都是 Windows的gdi组件提供的。不过绘图的不涉及界面,这些倒是有第三方在linux里另外实现的一遍,大致可以兼容。
hztltgg 2021-03-11
  • 打赏
  • 举报
回复
引用 4 楼 小灰狼 的回复:
[quote=引用 1 楼 X-i-n 的回复:].net core的桌面应用也是windows应用。跨平台默认只能开发控制台应用,如果需要开发跨平台的GUI程序,可以看看mono或者Avalonia。
你的意思是说,dotnet core 的windows应用程序无法在linux上运行?[/quote] 是的
X-i-n 2021-03-11
  • 打赏
  • 举报
回复
引用 4 楼 小灰狼 的回复:
[quote=引用 1 楼 X-i-n 的回复:].net core的桌面应用也是windows应用。跨平台默认只能开发控制台应用,如果需要开发跨平台的GUI程序,可以看看mono或者Avalonia。
你的意思是说,dotnet core 的windows应用程序无法在linux上运行?[/quote] 对。不管.net framework也好,.net core也好,.net 5也好,只要是"windows应用程序",就只能在windows里跑。尤其是图形程序。就像楼上推荐的,跨平台其实web是最佳方案,如果条件限制用不了,可以考虑mono, avalonia这些。
小灰狼 2021-03-11
  • 打赏
  • 举报
回复
引用 1 楼 X-i-n 的回复:
.net core的桌面应用也是windows应用。跨平台默认只能开发控制台应用,如果需要开发跨平台的GUI程序,可以看看mono或者Avalonia。
你的意思是说,dotnet core 的windows应用程序无法在linux上运行?
hztltgg 2021-03-11
  • 打赏
  • 举报
回复
引用
去年的WinForm项目,简单的功能,用 HttpListener 打开本地8123端口进行监听,然后根据接入的URL信息调用本地第三方提供的DLL 考虑要运行在XP上,以及安装程序制作方便,还有其它一些原因,当时我用 VS2010 开发,用 dotnet framework 4.0 profile 现在要考虑让它运行在 linux 上,而 dotnet core 可跨平台。想咨询各位,能用 dotnet core 编译吗,或者有更好的解决方案
看你另外一个问题的提问,我觉得用core的话,做成一个网站,反正core网站也是不依赖iis的,监听也能解决,控制通过浏览器,界面做成网页就行。关键是你的第三方DLL到底能不能支持跨平台?不支持的话啥都是白瞎
hztltgg 2021-03-11
  • 打赏
  • 举报
回复
官网下载的肯定是2019,不知道你哪儿下载的 https://visualstudio.microsoft.com/zh-hans/downloads/ linux上肯定是没有窗体的,WinForm 是 Windows Form,WPF 是 Windows Presentation Foundation,都离不开Windows 。 你的程序还是要和硬件交互的为主,跨平台的框架也可能不适合你,哪些更多是在界面上的跨平台。

17,747

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧