Есть ли примеры компиляции кода C # с использованием Mono, чтобы exe-файл мог работать с поддержкой нативных клиентов Google? - PullRequest
8 голосов
/ 28 октября 2011

Я нашел пресс-релиз, в котором говорится, что Mono теперь поддерживает компиляцию для собственного клиента.Неясно, доступно ли это только на отдельном моно-форке github или как часть стандартного дистрибутива.

Я создал разветвленный моно-дистрибутив, но не смог найти примеров того, как собрать собственный исполняемый файл клиента, чтобы я мог запустить его в Chrome.

Кто-нибудь знает пример проекта или вы можете предоставить пример того, как создать приложение Mono для NaCl?

Ответы [ 3 ]

4 голосов
/ 16 ноября 2011

Я думаю, что некоторые из изменений, возможно, были переданы в поток, но на сегодняшний день (16.11.11) есть определённые исправления, которые всё ещё есть только в github fork (https://github.com/elijahtaylor/mono/).Чтобы создать моно для nacl, следуйте инструкциям в каталоге mono / nacl (https://github.com/elijahtaylor/mono/tree/master/nacl).Вы хотите моно среду выполнения, которая будет создавать моно, которое может быть встроено в ваш модуль nacl и может JIT-компилировать сборки .NET.(Существует также моно AOT-компилятор, который работает на linux / mac и генерирует модули nacl, но я уверен, что он сейчас не работает, так как никто не использует и не тестирует его).

См. Nacl/test/my.c и mono / mini / fsacheck.c для примеров того, как вызвать моно среду выполнения для JIT-кода из вашего модуля nacl.Внутри браузера вы должны придумать свой собственный способ (например, перцовые и / или nacl-крепления), чтобы получить байт-код в ваш модуль nacl.

3 голосов
/ 07 сентября 2012

В этом сообщении от марта 2012 года указано, что в Chrome 19 есть поддержка собственного клиента для Embedded Mono

Версии Mono для собственного клиента теперь доступны дляскачать в SDK.Они скомпилированы с помощью glibc, а libmono поставляется как динамическая библиотека.Mono доступен только для pepper_19 и выше.

Обратите внимание, что вы должны синхронизировать свои пакеты pepper_X и naclmono_X (т. Е. Не обновлять один без обновления другого), иначе вы, вероятно, не сможете запустить полученную сборкуNexes.Новые версии Mono, соответствующие данному SDK, должны быть доступны в течение нескольких часов после появления новой сборки SDK.

В настоящее время в Native Client поддерживается только встроенный Mono (http://www.mono -project.com / Embedding_Mono).

3 голосов
/ 28 октября 2011

Я не уверен, что он был добавлен в репозиторий Mono, но здесь есть форк, работающий на NaCl: https://github.com/elijahtaylor/mono Обратите внимание, используйте на свой страх и риск!

...