[Mono-dev] Gtk depends on Winforms ¿?

Christian Hoff christian_hoff at gmx.net
Sat Sep 5 03:15:47 EDT 2009


Andoni Morales wrote:
> Hi,
>
> I have recently tried to upgrade  from Mono 2.4 to 2.4.2.2 in Windows
> XP, which comes with gtk-sharp-2.12.9
> In Windows I use 'mkbundle' [1] to generate from my c# app an
> executable file that can be launched on a computer that doesn't not
> have mono installed. mkbundle builds a new executable that embeds all
> the assemblies needed by the c# executable to run.(I attach the
> output)
> My aplication does not depends on Winforms and using Mono 2.4 I can
> launch it without any problems. But  when I use Mono 2.4.2.2 I run
> into this exception:
>
>  Unhandled Exception: System.TypeInitializationException: An exception
> was thrown by the type initializer for Gtk.Application --->
> System.IO.FileNotFoundException: Could not load file or assembly
> 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089' or one of its dependencies. The
> system cannot find the file specified.
> File name: 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
> PublicKeyToken=b77a5c561934e089'
>
> Does that means that with gtk-sharp-2.12.9 I need System.Windows.Forms
> to run a Gtk app? Why does Gtk.Application has a runtime dependency on
> System.Windows.Forms and why mkbundle is not even aware of this
> dependency and does not include this assembly in the bundle?
> It also happens with 2.4.2.3 so I believe it's a gtk-sharp issue
>   
You're right. gtk-sharp has a Winforms dependency on the Windows 
platform to enable visual styles by calling 
System.Windows.Forms.Application.DoEvents via reflection. Nobody has 
ever found out why this works or how we could implement such 
functionality without loading winforms.

We should probably put that code in a try-block. What do you think, Mike?


Christian


More information about the Mono-devel-list mailing list