Можно ли создать Mono-комплект, включающий библиотеки WPF? - PullRequest
9 голосов
/ 03 июня 2010

Я знаю, что библиотеки WPF не реализуются моно-библиотекой классов, однако (насколько я знаю) среда выполнения mono 2.6 полностью совместима с средой исполнения .NET 2.0 / 3.5, поэтому если библиотеки WPF только вызывают вызовы PInvoke для windows api теоретически возможно запустить приложение wpf на windows, используя mono runtime. Причиной такого желания является развертывание приложения wpf как отдельного исполняемого файла для Windows. Кто-нибудь пробовал что-то подобное раньше? Если да, каковы были результаты?

Ответы [ 6 ]

5 голосов
/ 12 июня 2010

Короче ... Нет

На данный момент в проекте Mono нет планов по внедрению API-интерфейсов Windows Presentation Foundation в рамках проекта

Mono будет обеспечивать Moonlight поддержку, которая, насколько я понимаю, будет также использовать подмножество XAML для создания своего пользовательского интерфейса (, как Silverlight ) но есть юридических осложнений . Например, он ограничен платформами не-Microsoft и не-Mac.

Если вы хотите найти список кроссплатформенных альтернатив с открытым исходным кодом для WPF / XAML, я работаю над составлением списка жизнеспособных альтернатив .

3 голосов
/ 13 сентября 2011

Ну, я попробовал с небольшим успехом. Сначала я проверил с помощью corflags, если необходимые dll-ы реализованы в смешанном режиме (PresentationFramework, PresenationCore, WindowsBase, System.Xaml). Все они являются чистыми реализациями CIL, поэтому должны нормально работать с моно. Затем я установил упомянутые библиотеки DLL в GAC Mono и попытался запустить очень простое приложение WPF. Вот что я получил:

  • Утверждение в mini-codegen.c: 1186, условие `reginfo [sreg] .born_in

    0 'не встречал Это приложение запросило среду выполнения прекратить его в Необычный способ. Пожалуйста, свяжитесь со службой поддержки приложения для более информация.

Таким образом, хотя в теории все это должно работать, WPF, вероятно, является сложным для запуска из коробки на моно, было бы здорово, если бы была чистая реализация CIL WPF, которая была бы совместима как с моно, так и .NET Framework .

2 голосов
/ 03 июня 2010

Насколько я знаю, Mono не поддерживает WPF .

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

0 голосов
/ 28 мая 2011

Не полностью, но ..

Вы можете использовать Moonlight 4 (silverlight 4) в режиме рабочего стола: -

https://github.com/inorton/MoonBase - помощники MVVM

https://github.com/inorton/XamlPreviewer - клон XamlPad

0 голосов
/ 18 июня 2010

На MIX 2010 Мигель де Иказа заявил в своей сессии, что Mono не собирается поддерживать WPF Все, что связано с WPF-подобной поддержкой, только обеспечивает то, что необходимо для Moonlight.

0 голосов
/ 05 июня 2010

Похоже, вам нужно прочитать об архитектуре WPF, чтобы лучше ее понять.

http://msdn.microsoft.com/en-us/library/ms750441.aspx

Многие монеты отсутствуют в Mono и доступны только в .NET. Следовательно, ваша «теория» неверна, и вы не можете запускать приложения WPF в Mono, даже в Windows.

...