繁体   English   中英

是否可以创建包含WPF库的Mono包?

[英]Is it possible to create a Mono bundle that includes WPF libraries?

我知道WPF库不是由单类库实现的,但是(据我所知)单声道2.6运行时与.NET 2.0 / 3.5运行时完全兼容,所以如果WPF库只对Windows api进行PInvoke调用理论上可以使用单声道运行时在Windows上运行wpf应用程序。 想要这样做的原因是将wpf应用程序部署为Windows的独立可执行文件。 有没有人尝试过类似的东西? 如果是这样,结果如何?

简而言之......不

此时,Mono项目没有计划将Windows Presentation Foundation API作为项目的一部分实现

Mono 提供Moonlight支持,根据我的理解,它也将使用XAML的一个子集来创建其UI( 与Silverlight相同 ),但涉及法律复杂性 例如,它仅限于非微软和非微软平台。

如果你想找到一个WPF / XAML的开源跨平台替代品列表,我正在努力编译一个可行的替代品列表

好吧,我确实试了一下,收效甚微。 如果需要dll-s以混合模式(PresentationFramework,PresenationCore,WindowsBase,System.Xaml)实现,我首先检查corflags。 它们都是纯粹的CIL实现,因此单声道应该可以正常工作。 接下来,我将提到的DLL安装到mono的GAC中,并尝试运行一个非常简单的WPF应用程序。 这就是我得到的:

  • 断言在mini-codegen.c:1186,条件`reginfo [sreg] .born_in

    0'未满足此应用程序已请求运行时以不寻常的方式终止它。 有关更多信息,请联系应用程序的支持团队。

因此虽然从理论上说这应该都可行,但WPF可能很复杂,可以在单声道上运行开箱即用,如果WPF的纯CIL实现与单声道和.NET Framework兼容,那将会很酷。

据我所知, Mono不支持WPF

此外,WPF使用图形模块并直接与GPU交互。 所以我看不出你如何使用WPF而没有隐藏的pinvokes。

听起来你需要阅读WPF架构以更好地理解它。

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

Mono中缺少许多部分,仅在.NET中可用。 因此,您的“理论”不正确,即使在Windows上也无法在Mono上运行WPF应用程序。

在MIX 2010上,Miguel de Icaza在他的会议中表示,Mono不会支持WPF。 任何与WPF类似支持相切的东西只是提供Moonlight所需的东西。

不完全,但..

您可以在桌面模式下使用Moonlight 4(silverlight 4): -

https://github.com/inorton/MoonBase - MVVM助手

https://github.com/inorton/XamlPreviewer - XamlPad克隆

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM