[MonoDevelop] Deployment for desktop applications

Michael Hutchinson m.j.hutchinson at gmail.com
Sun Oct 24 18:02:04 EDT 2010

On Sat, Oct 23, 2010 at 10:26 AM, Derek JW Cahusac de Caux
<derek at azuregulf.com> wrote:
> Hi - I'm new to MD and C# (thoroughly enjoying both) and am now at the stage
> where I'd like to 'package and ship' simple C# desktop applications to end
> users (on both Linux and Windows).
> These tutorials from Visual Studio look fairly good:
> http://msdn.microsoft.com/en-us/library/k3bb4tfd%28v=VS.100%29.aspx
> http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-application-visual-studio-setup-project/
> Any pointers to the equivalent guides in MD would be most appreciated.
> I really want to avoid asking end users to extract tarballs, drop down to
> Terminal and run " sudo ./configure && make && make install" if at all
> possible....

Unfortunately MonoDevelop doesn't have any built-in support for
packaging. The best it can do is create a zip of binaries, or a
tarball with build/install scripts. I know, we've wanted packaging
support for a while
(http://monodevelop.com/Developers/Tasks/Packaging) but it's difficult
to implement fully and there hasn't been huge demand.

Linux packaging depends on the distro, unfortunately - the major
package formats are rpm (openSUSE, SLE*, Redhat, Centos, Fedora, etc)
and deb (Debian, Ubuntu, etc.), though a few distros use other systems
(Gentoo etc).

I've only used RPM myself. The way it works is that you write a
specfile: a description, a list of dependencies, the commands to build
and install (or simply unzip and cp) the app, and a list of files to
package up. You then feed it to a tool that builds and installs the
package into a fake root and collects the installed files and packages
them up. I think deb is fairly similar. If you're lucky, you might be
able to make packages that are usable on several distros or versions,
depending how similar they are.

If your app is open-source, I suggest you investigate the openSUSE
Build Service which, given source and spec files, can build packages
for multiple distros automatically. The packages already there will
provide good examples to base yours on.

Michael Hutchinson

More information about the Monodevelop-list mailing list