ubuntu下wine安好了mono一个gz格式包一个msi格式包怎么安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下wine安好了mono一个gz格式包一个msi格式包怎么安装相关的知识,希望对你有一定的参考价值。

参考技术A 是的,要先解压。终端输入:sudo tar -zxvf 压缩文件名.tar.gz /tmp(假设想解压到/tmp目录),然后cd 解压后的目录名 进入解压后的目录,ls查看其中有没有INSTALL文件,按照上面的说明安装即可。一般步骤是:sudo ./configure、make、make install本回答被提问者采纳

如何在 C# .NET 中编写程序,在 Linux/Wine/Mono 上运行它们?

【中文标题】如何在 C# .NET 中编写程序,在 Linux/Wine/Mono 上运行它们?【英文标题】:How to write programs in C# .NET, to run them on Linux/Wine/Mono? 【发布时间】:2012-10-17 16:32:24 【问题描述】:

在这种特殊情况下,我需要为 Linux 运行 .complicated NET 应用程序。 我的意思是复杂 - 该项目已经开发了 3 年,我不想再用 java 或其他东西,开发和支持,.NET 和 Java 版本。

应用程序正在生成鼠标和键盘事件(通过 winapi/dll 导入)并使用串行端口。我也有很少的延迟计时器 - 用于串行端口通信(10-20ms,我在这里不需要很高的精度)。

剩下的只是一堆简单的代码,没什么特别的,没有奇怪的控件,没有directx等。

我应该期待什么?这行得通吗?

如果代码的某些部分失败 - 我可以稍微改变一下,在 .net 应用程序和 linux 上的迷你应用程序之间建立网络连接,我可以编写用于发送鼠标和键盘事件或 RS232 通信。

另外我想问一下 Wine 和 .NET 的一般情况:

如何编写应该在 Linux/Wine/Mono 上运行的 .NET 应用程序?

哪个版本的框架? (1.x、2.0 还是我可以使用 3.5?) 我应该避免什么(从 windows dll 导入?计时器?)

编辑/从评论中移动:

几年前我看过单声道,但很糟糕。现在我看到它长大了,支持 LINQ、Threading 和其他复杂的功能。另外现在帮助看起来真的很严重。我还没有接受答案,因为我看到人们仍然发布非常有用的链接。如果这个问题得到很多 +1,我会重写它,也许这会对其他人有所帮助。

我希望这里有人在这里对 .NET on linux 有一些实践经验...

【问题讨论】:

Mono 是 Microsoft .NET 的开源实现,您可能会使用它。 谢谢。我在哪里看到过这个,但我忘记了。无论如何,我仍然需要一些在 Mono 中开发的东西的实用信息。 如果担心兼容性问题,Mono Migration Analyzer 可以显示潜在问题。 如果您使用 pInvokes 访问 Win32 中的功能,Mono 将不适合 - 这将在 linux 上明显失败。 @adrianbanks 但他在自己的问题中提到了解决方案。他可以将程序分成两部分,一个独立于平台的 .NET 部分,带有一些 IPC,另一个是根据运行平台使用的本地组件。事实上he can still use P/Invoke,他只需要对windows使用一个类,对linux使用一个类 【参考方案1】:

您在http://www.mono-project.com 上阅读过有关 Mono.NET 的信息吗?

它允许您编写适用于 Linux 的 .NET 应用程序,与 Microsoft 实现略有不同。 我不认为 wine 可以处理任何 .NET 组件。

只需阅读之前的文档就可以了。

PS:这也为您提供了单声道和 .NET 之间的兼容性列表。 http://www.mono-project.com/Compatibility 和 MoMA(mono migration analyzer) 是一种工具,可以扫描任何已创建的 .NET 应用程序,以查看其是否兼容部署在 linux 上。

【讨论】:

谢谢。这对我来说可能已经足够了,但我等不及接受了。我看到人们仍在发布有用的链接。 是的,最好的部分是它被移植得更远了,所以你也可以用它来为android和ios编写代码。 如果有人遇到这个问题,现在你会想要微软的官方平台 .NET Core,它支持 Windows 和其他桌面软件上的 .NET。【参考方案2】:

在这篇文章中,我缩短并结合了我在这个帖子中从其他人那里学到的所有信息。

    .NET for Linux 的开源实现称为 Mono

    兼容性有据可查(请参阅下面的链接)。 Mono 支持 LINQ、线程和其他一些复杂的功能。

    它甚至支持 InteropServices。可以在 linux 库上使用 DllImport (!),例如 libc.so

    Mono 可以支持 Android 和 iOS(它们是基于 Linux 的,对吗?)

    有一个 Mono 兼容性分析工具,称为 MoMA(Mono 迁移分析器)

Mono 迁移分析器 (MoMA) 工具可帮助您识别您遇到的问题 将您的 .Net 应用程序移植到 Mono 时可能会有。它有助于查明 平台特定调用 (P/Invoke) 和尚未实现的区域 Mono 项目支持。

有用的链接:

Mono - home page

Mono - page with documentation

Mono - compatibility page

MoMA - Mono Migration Analysis page

【讨论】:

八年后你可以安装 .NET Core SDK snapcraft.io/dotnet-sdk :)【参考方案3】:

我们有几个 .net 应用程序可以在带有 Mono 的 Windows 或 Linux 上运行。

您可以根据需要在 VisualStudio 中进行开发,无需使用 Mono 开发环境。在 Linux 上运行 .net 应用程序只需要运行时单声道库。

我们使用 net 2.0 目标在 VisualStudio 中编译这些应用程序,因为 mono 与 .net 2.0 几乎 100% 兼容。 Mono 还实现了后来 .net 版本的 APIS,但不是全部,也不是那么完整。如果您使用 2.0 之后的新版本功能,您应该检查这些功能是否受支持或使用 Mono 兼容性分析工具。您也可以使用 Mono 开发而不是 Visual Studio,我的前任就是这样做的;结果几乎相同,我更喜欢使用 Visual Studio。

我们没发现什么大问题,应用比较复杂,多线程,异步 I/O,WinForms,sockets,串口等。

一些应用使用了.net 库,而MS .net 中没有这些库,但所有这些都可以安装在Windows 上,因此在Windows 中运行这些应用没有问题。

希望对你有帮助,

【讨论】:

【参考方案4】:

您可以使用 .NET Core 在 linux 上开发 C# 应用程序:https://www.microsoft.com/net/core

安装完成后,在终端输入dotnet new,获取可以生成的应用模板列表供您启动。

从今天的 .NET Core 2.0 开始,列表如下:

Templates                                         Short Name       Language          Tags               
--------------------------------------------------------------------------------------------------------
Console Application                               console          [C#], F#, VB      Common/Console     
Class library                                     classlib         [C#], F#, VB      Common/Library     
Unit Test Project                                 mstest           [C#], F#, VB      Test/MSTest        
xUnit Test Project                                xunit            [C#], F#, VB      Test/xUnit         
ASP.NET Core Empty                                web              [C#], F#          Web/Empty          
ASP.NET Core Web App (Model-View-Controller)      mvc              [C#], F#          Web/MVC            
ASP.NET Core Web App                              razor            [C#]              Web/MVC/Razor Pages
ASP.NET Core with Angular                         angular          [C#]              Web/MVC/SPA        
ASP.NET Core with React.js                        react            [C#]              Web/MVC/SPA        
ASP.NET Core with React.js and Redux              reactredux       [C#]              Web/MVC/SPA        
ASP.NET Core Web API                              webapi           [C#], F#          Web/WebAPI         
global.json file                                  globaljson                         Config             
Nuget Config                                      nugetconfig                        Config             
Web Config                                        webconfig                          Config             
Solution File                                     sln                                Solution           
Razor Page                                        page                               Web/ASP.NET        
MVC ViewImports                                   viewimports                        Web/ASP.NET        
MVC ViewStart                                     viewstart                          Web/ASP.NET        

当前最新版本为 2.0。

【讨论】:

3.0 即将到来。很快(2021 年?)就会有多平台 .NET 5。【参考方案5】:

您可以使用 winetricks 在 wine 中安装完整的 .Net Framework 4.x,然后运行您的应用程序。

Wine 支持串口,所以我看不出有什么不便。

我制作了一个视频来展示这个:

https://www.youtube.com/watch?v=60yyWBLXv1k

在视频中,您可以看到 windows 任务栏。别担心。这是因为它在 WSL2 中运行。但这些步骤在 Linux 中完美运行。

问候

【讨论】:

您认为这对于使用混合和本机 C++ 的 .NET C++/CLI winforms 应用程序是否有机会或工作?它是用 /clr 编译的。 是的,它应该可以工作。 WinForms 比 WPF 得到更好的支持。你有两种方法。 1.让wine安装支持WinForms的Mono for Windows。 2.避免像视频中那样安装单声道并安装.NET框架。框架的版本取决于您在项目中指定的目标版本。

以上是关于ubuntu下wine安好了mono一个gz格式包一个msi格式包怎么安装的主要内容,如果未能解决你的问题,请参考以下文章

如何在ubuntu下安装wine

ubuntu怎样装迅雷?和360

Ubuntu 安装 mono

ubuntu下安装wine并运行source insight

Ubuntu下安装qq

ubuntu 下 cajview 替代方案