26

I am developing a GTK# mono application under openSuse, but I am interested in deploying it for all three platforms (Windows 7, Snow Leopard and as many Linux distributions as I can test on).

Deploying on Linux is not a problem as GTK# comes with the mono libraries, but for Windows I would not like to force the users to install GTK#. Is there a way to embed GTK# in the application, or at least integrate its installation with the installation of my program?

Mafii
  • 7,227
  • 1
  • 35
  • 55
Kiril
  • 2,091
  • 7
  • 33
  • 43
  • 1
    you will need to re-distribute gtk+ and gtk-sharp with your installer, gimp does the same thing (since they wrote gtk it isn't a surprise) – IanNorton Jun 25 '11 at 07:40
  • 1
    I thought that this would be one solution. How should I go about doing so? – Kiril Jun 26 '11 at 16:31
  • Is there a specific reason you can't have your users install the gtk# libraries? It's general practice for any application that relies on shared libraries. – Ryan Stecker Sep 14 '11 at 23:12

1 Answers1

26

You may deploy GTK# applications without forcing users to install GTK# for .NET on Windows in a number of ways.

  1. You may embed the entire Mono runtime (19 MB overhead) into your Application. Then there won't be any dependencies, your users won't even need to install .NET or MONO. Here's a Guide (I think Banshee uses this).

  2. You may copy all the GTK# assemblies into your program directory. It isn't recommended however because you may run into a lot of problems if the user has another version of the Gtk runtime installed. (Yes GTK+ also needs a runtime).

  3. You may integrate the GTK# installer with the Windows Installer of your application. (Then your users will be able to install both with a single click, no forcing). Many Installer programs can do this.

  4. You may use a Package Management System.

  5. You may use Deployment Management / Dependency Management Software, but this is expensive since all the good ones are propriety.

Though these workarounds can save trouble for your users, in the long run I recommend option 3. It may prove worthwhile to have your users install GTK# because other workarounds may ultimately give more inconvenience to your users than a simple extra installation.

Sam
  • 7,252
  • 16
  • 46
  • 65
ApprenticeHacker
  • 21,351
  • 27
  • 103
  • 153