如何工作单 [英] How does Mono work
问题描述
我用C#在Visual Studio .NET中一样,和我身边有一个小玩单在openSUSE Linux的,但我真的不明白它是如何工作的。
I have used C# in Visual Studio with .NET, and I have played around a little with Mono on openSUSE Linux, but I don't really understand how it works.
如果我写一篇关于.NET在Windows应用程序,请问这与单声道?我不能只是执行Windows的.exe上的Linux文件无酒,所以它不会帮我运行在Windows开发的应用程序。
If I write an app in Windows on .NET, how does this relate to Mono? I can't just execute an a Windows .exe file on Linux without Wine, so it doesn't help me execute apps developed in Windows.
时的目的纯粹是为了有一个.NET库相当于在Linux(及其他),使跨平台的开发更容易?例如,如果我是一个企业,想要达到Linux的客户,但真正想用.NET,那么应该单是我的选择吗?还是有更多的东西,我很想念?
Is the purpose purely to have a .NET library equivalent on Linux (and others) to make cross platform development easier? For example, if I was a business and wanted to reach Linux customers, but really wanted to use .NET, then Mono should be my choice? Or is there something more that I'm missing?
推荐答案
一个Windows EXE包含多个部件。的简体的是,.NET代码(= MSIL)仅仅是EXE的一部分,而且也有一个真正的原生Windows部分充当某种发射器为.NET的EXE内框架,然后执行MSIL。
A Windows EXE contains multiple "parts". Simplified, the .net Code (=MSIL) is only a Part of the EXE, and there is also a "real" native Windows Part inside the EXE that serves as some sort of launcher for the .net Framework which then executes the MSIL.
单会只是采取MSIL并执行它,忽略了本地Windows启动的东西。
Mono will just take the MSIL and execute it, ignoring the native Windows Launcher stuff.
再次,这是一个简单的概述
Again, this is a simplified overview.
的编辑:的我怕我的深深的细节了解不够好了真正的细节(我知道大概一个PE头是什么,但没有真正的细节),但我发现这些链接有帮助的:
I fear my understanding of the deep deep details is not good enough for really much detail (I know roughly what a PE Header is, but not really the details), but i found these links helpful:
< A HREF =http://blog.vuscode.com/malovicn/archive/2007/12/24/net-foundations-net-assembly-structure.aspx> .NET基础 - .NET程序集结构
这篇关于如何工作单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!