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格式包怎么安装的主要内容,如果未能解决你的问题,请参考以下文章