[MonoDevelop] Deployment for desktop applications

Derek JW Cahusac de Caux derek at azuregulf.com
Mon Oct 25 13:34:41 EDT 2010


Thanks Michael & Quandry for your responses - I'll investigate further 
along the lines you've both suggested but this does raise a few 
questions, if not concerns...

Michael mentioned that 'there hasn't been a huge demand' for packaging 
which makes one wonder what developers are using MD for and how - is 
there any 'public' info on this? Are we looking at tens, hundreds, 
thousands of MD developers..?

 From looking at the various 'packaging' options out there (almost all 
seem to be command line driven) it seems that this is huge task simply 
because of the open systems arena - packagers are trying to be all 
things for all systems...maybe MD could start by implementing packaging 
(compiled binaries+dependencies+files, installer, launcher and 
un-installer) for just one "system"...any thoughts?

Quandary emailed  on 25/10/10 11:23:
>  I still wanted to add 3 things:
>
> 1. As a commerical solution, you can use InstallAnywhere (.bin files 
> you see for example in Google Earth, Sybase, or Oracle Java). I'd not 
> do that however, as it doesn't check for dependencies.
>
> 2. The installed version of mono on all the different Linux 
> distributions and distribution versions is not quite the same. So if 
> you for example depend on mono 2.6 (as opposed to 2.4, current Ubuntu 
> Lucid Lynx version), you'll basically have to package mono 2.6 as 
> well. This happended to me because there's a bug in 2.4 concerning XML 
> and XmlTextReader/writer encoding.
>
> 3. If you have a RPM file, you can use the Debian-Tool 'alien' to 
> convert it into a .deb file automagically (careful).
>
>
> Am 25.10.2010 00:02, schrieb Michael Hutchinson:
>> 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.
>>
>
>
>


More information about the Monodevelop-list mailing list