3.5 KiB
title | lastmodified | redirect_from | |
---|---|---|---|
Windows MSI | 2009-10-01 |
|
Windows MSI
NOTE: I make lots of assumptions about things I do not fully understand (C stuff). Please help me figure out what we need and what we don't need. :) - jpobst
One of my goals for Mono 2.8 is to have a completely new .msi (the Windows standard) based installer for Windows.
Currently, our Windows installer is not .msi, and is bloated with all kinds of things that don't really make sense to ship on Windows.
Table of contents |
Proposed Changes
Use MSVC instead of gcc to compile native code
This will require vcproj files for all the native libraries/executables. This will also require redistributing the C runtimes from MS. We can either require admin privileges and install them into the machine side-by-side cache, or install them privately to mono.
http://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
Use eglib instead of glib
This is the first step to not requiring cygwin. Also, the code produced by VC++ is likely better tuned for running on Windows.
Do not ship the 1.0 profile
This is simply a Mono 2.8 change. The 1.0/1.1 profile is no longer supported/shipped after Mono 2.6.
Do not ship Gtk#
We should modify our "Gtk# installer for .Net" to also install to the Mono GAC instead of shipping a second copy with Mono.
Note: There needs to be some work done with regards to ensuring Gtk# picks up our version of Gtk+ instead of the one installed with Pidgin, Inkscape, Miro, etc. Currently, the first one in PATH is used.
Strip out things that not many people use
|| |IKVM|Available here| |Boo|Available here| |NUnit|Available here| |IPCE|Available here| |NAnt|Available here| |embedding stuff|I'm not sure what is embedding stuff, and what is just leftovers from the build process. I am thinking stuff like .h, .def, .lib, .a, .la, etc..| |class library documentation|I don't think monodoc has ever worked on Windows? Developers can use the online documentation. Note that MD for Windows also ships with this documentation for use in MD.|
What GNU-ish(?) stuff do we still need to include?
I don't know a lot about this, but I guess we need either eglib or custom versions of:
- pkg-config
- gettext?
Conclusion
With these changes, I think we can get a learner, meaner installer that is .msi-based. My current estimation is we can get the installer under 30 MB. Currently, it is 75-80 MB.