[Mono-dev] Building mono on Windows issues.
joncham at gmail.com
Fri Oct 17 01:21:36 UTC 2014
I was maintaining the Visual Studio solution for the runtime and doing
Windows development for a while but haven't kept up for a number of years
now. We've had a number of "build mono on Windows" discussions over the
years and various attempts at improving it. Breaking the discussion into
Release/Install/CI for Windows
This was done with cygwin and was packaged by an additional installer step.
The installer step was never very transparent so I can't comment on that.
As for cygwin, the main issues were:
- it's an amalgam of tools, which constantly update. There was never an
easy way to duplicate a working setup from one machine to the next
- given the size and complexity of the mono build and tests, it was
generally not robust. Especially for continuous and automated usage
- it was slow. Slow as in hours on Windows vs minutes on Linux
Developing on Windows
As for actually developing mono on Windows, the main issue was that you
could not easily use Visual Studio to develop mono. The VS support for the
runtime was put together long ago as a way to develop/debug, but it still
required the full cygwin build to configure everything, build the class
libraries, and run the tests. Even if one was brave enough to work in this
setup, iteration time was slow (see above). Miguel and others made efforts
to build everything using MSBuild but nothing quite materialized for a
variety of reasons.
All that to say, if you just want to get the Windows support back to where
it was a few years ago via cygwin it can probably be done in a few
developer weeks. If you actually want to improve the Windows development
story, allowing for actual development and usage of Windows tools like
Visual Studio it's much more work. I'd love for the latter to happen, but
it's would take a lot of effort and coordination. Effort like improving
xbuild where needed if msbuild is the build mechanism of choice.
Coordination like making sure any work done didn't harm other platforms.
On Thu, Oct 16, 2014 at 2:16 PM, Alex J Lennon <
ajlennon at dynamicdevices.co.uk> wrote:
> On 16/10/2014 16:58, Bryan Crotaz wrote:
> > What's the estimation of effort required to get mono buildable in
> > windows and debuggable in VS? 6 man months? 18 man months?
> > I don't have time to donate but I'd be happy to put some money in a
> > pot with some of you to hire someone to work on this full time. Feels
> > like a concerted full time effort would bear more fruit than
> > occasional toe-dips in the water.
> fwiw - and this is merely a view from a bystander - I don't think it
> would take a lot to address the Windows build itself today.
> Mono does build on Windows, but it doesn't "just work" as people tend to
> expect nowadays. It needs some stream-lining imho with some setup script
> automation or similar for newbies. There are also some missing links in
> how an official Windows release is created versus using make, as we end
> up with missing files on install (or I am misunderstanding something
> that needs doing, which in itself would be a documentation issue).
> To me this isn't a code issue so much as an ownership and release
> management issue. I recognise there is a cost to that and there has to
> be an ROI for that cost to be worth bearing.
> Releases are made with broken Window builds as Vincent says. So imho
> it's a dead work "fixing" master at any given time as it will just
> become broken again, although some basic setup scripting to pull down
> Cygwin, dependencies, to get the installation step working and such
> would help people to get going, I feel.
> What's more relevant, I believe, is a maintainer who has committed to
> Windows build testing and patching prior to an offical release of Mono,
> a buy-in from other release maintainers that this is worth doing (or
> what's the point?), and perhaps some CI running the Mono tests in the
> Just my 4 cents,
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list