Mono msi что это
Перейти к содержимому

Mono msi что это

  • автор:

About Mono

Mono, the open source development platform based on the .NET Framework, allows developers to build cross-platform applications with improved developer productivity. Mono’s .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure.

Supported previously by Novell, Xamarin and now Microsoft and the .NET Foundation, the Mono project has an active and enthusiastic contributing community. Mono includes both developer tools and the infrastructure needed to run .NET client and server applications.

The Components

There are several components that make up Mono:

C# Compiler — Mono’s C# compiler is feature complete for C# 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0 (ECMA). A good description of the feature of the various versions is available on Wikipedia.

Mono Runtime — The runtime implements the ECMA Common Language Infrastructure (CLI). The runtime provides a Just-in-Time (JIT) compiler, an Ahead-of-Time compiler (AOT), a library loader, the garbage collector, a threading system and interoperability functionality.

.NET Framework Class Library — The Mono platform provides a comprehensive set of classes that provide a solid foundation to build applications on. These classes are compatible with Microsoft’s .NET Framework classes.

Mono Class Library — Mono also provides many classes that go above and beyond the Base Class Library provided by Microsoft. These provide additional functionality that are useful, especially in building Linux applications. Some examples are classes for Gtk+, Zip files, LDAP, OpenGL, Cairo, POSIX, etc.

Mono Feature Highlights

Binary Compatible
Built on an implementation of the ECMA’s Common Language Infrastructure and C#

Open Source, Free Software
Mono’s runtime, compilers, and libraries are distributed using the MIT license.

Comprehensive Technology Coverage
Bindings and managed implementations of many popular libraries and protocols

The Benefits

There are many benefits to choosing Mono for application development:

Popularity — Built on the success of .NET, there are millions of developers that have experience building applications in C#. There are also tens of thousands of books, websites, tutorials, and example source code to help with any imaginable problem.

Higher-Level Programming — All Mono languages benefit from many features of the runtime, like automatic memory management, reflection, generics, and threading. These features allow you to concentrate on writing your application instead of writing system infrastructure code.

Base Class Library — Having a comprehensive class library provides thousands of built in classes to increase productivity. Need socket code or a hashtable? There’s no need to write your own as it’s built into the platform.

Cross Platform — Mono is built to be cross platform. Mono runs on Linux, Microsoft Windows, macOS, BSD, and Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone and Android. It also runs on x86, x86-64, IA64, PowerPC, SPARC (32), ARM, Alpha, s390, s390x (32 and 64 bits) and more. Developing your application with Mono allows you to run on nearly any computer in existence.

Common Language Runtime (CLR) — The CLR allows you to choose the programming language you like best to work with, and it can interoperate with code written in any other CLR language. For example, you can write a class in C#, inherit from it in VB.NET, and use it in Eiffel. You can choose to write code in Mono in a variety of programming languages.

Other Uses

Scripting and Embedding — The Mono runtime can also be used to script your applications by embedding it inside other applications, to allow managed code and scripts to run in a native application.

See Embedding Mono for details on how to embed Mono.

See Scripting With Mono for strategies on how to script your application using the Mono runtime.

Папка .mono появилась на диске — что это? (mono.msi)

Данная статья расскажет о предназначении папки .mono, которую вы можете заметить у себя на локальном диске.

Папка .mono — что это такое?

Папка компонента, связанного с .NET Framework, который необходим для работы некоторых приложений, игр. Папка может появиться например после установки игры Robocraft.

Стандартное расположение папки:

Директория может быть скрытой.

На самом деле Mono — некий проект, который занимается системой, основанной на .NET Framework. Простыми словами это компонент, который используется при создании некоторых программ, игр. Само по себе ПО .NET Framework от Microsoft — платформа, которая необходима для работы многих программ, включая игры.

Каталог .mono, расположенный в директории игры Hearthstone:

Также может быть в директории ProgramData:

Папка .mono — можно ли удалить?

Если папка весит немного — не стоит удалять, лучше оставить, она может понадобиться для работы некоторого ПО. Когда директория имеет большой размер — лучше сперва создать точку восстановления, а потом уже удалять.

Точку восстановления создавать очень желательно (в случае проблем сэкономит время и сохранит нервы):

Папка mono и файл mono.msi: гарантия или вирус? Разбираемся вместе

Папка "mono" и файл "mono.msi" вызывают много вопросов у пользователей компьютеров. Они обнаруживаются на системном диске и некоторые пользователи считают их потенциальной угрозой безопасности или вирусом. Однако, на самом деле, эти файлы связаны с программным обеспечением Mono Framework, и их наличие на компьютере может быть полезным. В данной статье мы разберемся, что такое папка "mono" и файл "mono.msi", и есть ли необходимость в их удалении.

Mono Framework

Mono Framework — это программное обеспечение, разработанное для работы с платформой .NET на различных операционных системах, включая Windows, macOS и Linux. Он позволяет разработчикам создавать и запускать программы, написанные на языках C#, F# и других, на разных платформах. Mono Framework совместим с .NET Framework, что делает его полезным инструментом для переноса приложений на разные ОС.

В чем смысл Mono в Windows

Это может быть глупый вопрос. но я просто смотрел в проект Mono, и у них есть раздел об установке Mono на Windows. Но, поскольку Windows, очевидно, уже имеет .NET runtime, может ли кто-нибудь сказать мне, в чем именно смысл иметь Mono для Windows? Это помогает в кросс-платформенной разработке или что-то в этом роде?

12 ответов

поскольку Mono не реализует .Net 100% так же, как MS .Net Framework, хорошо, что вы можете протестировать Mono без необходимости запуска в Linux. Также Mono имеет привязки для создания форм с GTK, которые MS не поддерживает.

есть несколько функций Mono, которые .NET не имеет.

Mono высоки модульно. Вы можете разбить его на мелкие кусочки и только развернуть ровно те части, которые вам нужны. Не нужна система.В XML? Ладно, все кончено.

Mono встраивается. Вы можете разместить его внутри приложения C/C++, чтобы позволить пользователям создавать сценарии из безопасной управляемой изолированной среды. Самый известный пример этого-mod_mono, который размещает Mono внутри Apache веб-сервер, и как ASP.NET реализуется в Mono, например. Эта функция отлично сочетается с упомянутой выше модульностью.

Это уже упоминалось: статическая связь. и идет вместе с modularization.

компилятор как Служба-это еще один. Андерс Хейльсберг уже давно говорит об этом!—3—>долго времени, и может быть, просто, возможно, он будет готов к C# 5.0. Ну, Mono уже есть он и на самом деле имел это в течение многих лет.

Мигель де Икаса, ведущий разработчик Mono также имеет инициативу, которую он называет «объятия и Extend.NET», который расширяет CLI способами, которые (в настоящее время) невозможны с другими реализациями CLI (включая .NET). До сих пор, объятия и Extend.NET имеет три особенности.

Mono.Simd, который дает безопасный и контролируемый доступ к инструкциям SIMD базового процессора (например, SSE на Intel или AltiVec на PowerPC). Использованный для игр и Графика.

64-битные индексы массива, которые разрешены спецификацией ECMA, но Mono-единственная виртуальная машина, которая фактически предоставляет их. Используется в суперкомпьютерах.

и совсем недавно, продолжения. На самом деле это первый раз, когда Mono выходит за рамки спецификации: индексы длинного массива совершенно действительны в соответствии со спецификацией и Mono.Simd также работает на каждой CLI-совместимой реализации (хотя очень S-L-O-W), но моно.Tasklet должен специальная поддержка от виртуальной машины, которая не является частью CLI или .Сеть. Это используется для игровой логики и, например, во второй жизни.

Mono does some things the .Net doesn’t. например, mono поддерживает статическую компоновку, чтобы вы могли создавать, компилировать и распространять приложение, не требуя отдельного установщика времени выполнения. Если вы создали приложение, чтобы полагаться на mono, чтобы быть кросс-платформенным, есть несколько различий, и поэтому использование mono в Windows является большей гарантией совместимости.

.Net does some things that mono doesn’t. в BCL есть несколько мест, которые еще не портированы для mono. Если вы хотите приложение, которое будет работать на mac / linux вы, вероятно, хотите сначала разработать для mono, даже если вы делаете работу в windows.

Если вы хотите разработать кросс-платформенное приложение на C#, то использование реализации Microsoft не самая умная вещь, так как нет полностью совместимой Альтернативы для других платформ.

таким образом, использование Mono в Windows для разработки приложений гарантирует, что у вас будет мало проблем с переносом его на другую ОС (при условии, что вы избегаете других ям, таких как P/Invoke).

почему поддержка Windows, когда вы можете запустить реальную вещь?

существуют различные причины:

поддержка Windows помогает нам идентифицировать портативные части Mono из непереносимых версий, помогая Mono стать более портативным в будущее.

Это помогает нам, так как мы можем изолировать проблемы в моногородах по разбиение проблемы (это проблема времени выполнения или проблема ОС?).

около половины участников Mono являются разработчиками Windows. У них есть много различных причин для внося вклад в усилия, и мы очень важно, чтобы эти разработчики запускают среду выполнения в Windows не заставляя их использовать новый операционная система.

Mono не сильно изменяет реестр windows, обновляет системные библиотеки DLL, установка DLL в Windows / System32 путь.

Это помогает Разработчики на базе Windows, чтобы проверить свой код под Mono перед развертыванием в Linux.

Mono и применения которые врезают Mono можно раскрыть без установщик (вы можете «xcopy» развернуть применение и необходимое Mono файлы без установки .NET время выполнения.)

некоторые люди использовали его, потому что им не разрешено устанавливать .Net framework на своих ПК с Windows из-за количества реестра и системных файлов, которые он делает. (В плотно контролируемых средах.)

Mono, с другой стороны, автономно содержится в программных файлах и записывает только раздел реестра с его путем (который не требуется запускать).

Я думаю, что это глупо, но это то, что нам сказали несколько пользователей.

Это в основном там, как помощь в разработке моно приложений для моно конкретных библиотек. Также за помощь в продвижении дела, чтобы разработчики могли работать в своей естественной среде при разработке для Mono.

хотя это не представляет широкого интереса, есть несколько случаев, когда mono имеет улучшения по сравнению со стандартной средой выполнения Microsoft. Мигель выступил с докладом о некоторых из них в PDC в этом году:

см. эти сообщения:

также, Даже если у вас есть программа, динамически связанная с Mono, вы можете скомпилировать ее .exe и Mono runtime на pendrive и goto другой компьютер без .NET / Mono установлен, и запустите эту программу на новом ПК без установки во время выполнения. ie, это приводит к портативным приложениям (особенно полезно в качестве портативных приложений USB pen drive) Это невозможно .Сеть. У вас должна быть установлена среда выполнения .NET определенным способом установки, т. е. среда выполнения, содержащая папку copy и paste not вероятный.

Я думаю, главная причина они сделали это, чтобы они могли работать .Net приложений на Mono и .Чистый бок о бок, чтобы сравнить их. Кроме того, есть несколько приложений, которые зависят от библиотеки Mono.

чтобы добавить к многочисленным причинам, упомянутым в других ответах, Mono для Windows может потребоваться установить на Wine, чтобы позволить запускать приложения .Net внутри Wine.

Windows MSI

One of my goals for Mono 2.8 is to have a completely new .msi (the Windows standard) based installer for Windows.

Currently, our Windows installer is not .msi, and is bloated with all kinds of things that don’t really make sense to ship on Windows.

Table of contents

Proposed Changes

Use MSVC instead of gcc to compile native code

This will require vcproj files for all the native libraries/executables. This will also require redistributing the C runtimes from MS. We can either require admin privileges and install them into the machine side-by-side cache, or install them privately to mono.

Use eglib instead of glib

This is the first step to not requiring cygwin. Also, the code produced by VC++ is likely better tuned for running on Windows.

Do not ship the 1.0 profile

This is simply a Mono 2.8 change. The 1.0/1.1 profile is no longer supported/shipped after Mono 2.6.

Do not ship Gtk#

We should modify our “Gtk# installer for .Net” to also install to the Mono GAC instead of shipping a second copy with Mono.

Note: There needs to be some work done with regards to ensuring Gtk# picks up our version of Gtk+ instead of the one installed with Pidgin, Inkscape, Miro, etc. Currently, the first one in PATH is used.

Strip out things that not many people use

IKVM Available here
Boo Available here
NUnit Available here
IPCE Available here
NAnt Available here
embedding stuff I’m not sure what is embedding stuff, and what is just leftovers from the build process. I am thinking stuff like .h, .def, .lib, .a, .la, etc..
class library documentation I don’t think monodoc has ever worked on Windows? Developers can use the online documentation. Note that MD for Windows also ships with this documentation for use in MD.

What GNU-ish(?) stuff do we still need to include?

I don’t know a lot about this, but I guess we need either eglib or custom versions of:

  • pkg-config
  • gettext?

Conclusion

With these changes, I think we can get a learner, meaner installer that is .msi-based. My current estimation is we can get the installer under 30 MB. Currently, it is 75-80 MB.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *