Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#windows应用程序在MacOS中运行_C#_.net_Winforms_C# 4.0 - Fatal编程技术网

C#windows应用程序在MacOS中运行

C#windows应用程序在MacOS中运行,c#,.net,winforms,c#-4.0,C#,.net,Winforms,C# 4.0,我只是新来的C#Windows版。现在我有了一个项目,可以上传一个txt文件并输出到PDF文件中。现在我需要使用C#windows窗体来实现这一点,但我只是好奇,如果我使用C#windows窗体开发此应用程序,我是否能够在MacOS环境中安装该应用程序,并在windows上使用它?有什么需要考虑的吗?比如说,我需要安装一个特定的软件包才能让它在Mac上工作,还是反过来 我只是新来的C#Windows版 嗨 现在我有了一个项目,可以上传一个txt文件并输出到PDF文件中 继续 现在我需要使用C#w

我只是新来的C#Windows版。现在我有了一个项目,可以上传一个txt文件并输出到PDF文件中。现在我需要使用C#windows窗体来实现这一点,但我只是好奇,如果我使用C#windows窗体开发此应用程序,我是否能够在MacOS环境中安装该应用程序,并在windows上使用它?有什么需要考虑的吗?比如说,我需要安装一个特定的软件包才能让它在Mac上工作,还是反过来

我只是新来的C#Windows版

现在我有了一个项目,可以上传一个txt文件并输出到PDF文件中

继续

现在我需要使用C#windows窗体来完成此操作

不,您不需要使用WinForms上传文本文件并下载PDF

但我只是好奇,如果我使用C#Windows窗体开发此应用程序,我是否能够在MacOS环境中安装该应用程序,并将其用作在Windows上使用它的方式

不,你不能。WinForms与Microsoft Windows操作系统紧密耦合(最大的线索是名称:WindowsForms。WinForms是Windows默认窗口控件和小部件(也称为User32和Common控件)以及OLE、COM+ActiveX和其他以Windows为中心的API的薄包装

要使WinForms的一个子集在其他操作系统上工作,但由于WinForms不是本机跨平台的,因此您将无法获得对macOS主菜单的支持,您的用户将能够看出您的程序看起来和感觉上都不像本机程序

有什么需要考虑的吗?比如,我需要安装一个特定的软件包才能让它在Mac中工作,还是反过来

不,不行

备选办法:
  • 使用WinForms
    System.Windows.Forms
    创建应用程序,并通过某种形式的应用程序远程处理使macOS用户可以使用:
    • 在使用macOS远程桌面应用程序访问的Windows设备上运行
    • 在使用基于浏览器的RDP网关访问的Windows设备上运行它
    • 在苹果Mac上运行的Windows虚拟机上运行它(并行Fusion、VirtualBox等)
  • 仅在.NET Core中使用本机支持的跨平台功能:
    • 使用内置的
      http://localhost
      ASP.NET web服务器,该服务器承载一个GUI web应用程序,该应用程序通过与应用程序其余代码交互的web浏览器进行访问
    • 创建一个仅限命令行的应用程序
    • 使用类似.NET的
      ncurses
      库制作文本模式GUI应用程序
  • 制作一个特定于平台的GUI,同时仍然共享其余的应用程序代码(例如,使用Xamarin从.NET使用Cocoa,在Windows上使用WinForms或WPF,在Linux/BSD上使用GTK等)

。另请参见。NET 5将具有一定程度的WinForms支持(并且将是跨平台的):.@jslowik.NET 5运行时是跨平台的,是的-但WinForms只是.NET更大类库的一个组件,它不包括在跨平台部分中。那篇博客文章没有提到WinForms在其他平台上可用的任何内容-我认为无论如何都不可能,因为像
控件之类的东西。例如,Handle
变得毫无意义。说得好,@Dai。我想我只是希望它是真的!@Dai感谢你的回答,作为后续问题,我还能使用C#开发一个既适用于Windows又适用于Mac的应用程序吗?@madzquestion.net core现在也可以用于开发Mac和Windows的控制台应用程序。但是Winform不是,即使它可以用.net内核开发,但这些组件不受支持。