[Mono-dev] Compiling Mono with Visual Studio and .pdb files

Jean-Michel.Perraud at csiro.au Jean-Michel.Perraud at csiro.au
Tue May 29 07:36:46 UTC 2012


Hi Marek,

I have ironed out most issues I had to get to compiling a large part of the assemblies in VS/msbuild from scratch. What was the scope of the cleanup you are undertaking? I'd like to put in a pull request, but would like to have an idea of the scope of your change to minimise duplicates/differences. I use mostly SVN so the procedure to put in a pull request will be a learning experience.

I've added a few modifications to a couple of makefiles, but by and large the bulk is in the genproj.cs file. The key changes were:

- The msbuild compilation targets (for v4.0) always adds a reference to System.Core behind one's back. I've found a way to turn this off using the csproj template.
- Cyclic dependencies are flattened out and avoid reusing identical build output paths, to improve clarity and robustness.

Regards,
J-M

From: Marek Safar [mailto:marek.safar at gmail.com]
Sent: Saturday, 19 May 2012 6:41 PM
To: Perraud, Jean-Michel (CLW, Black Mountain)
Cc: michael.mudge at welchallyn.com; mono-devel-list at lists.ximian.com
Subject: Re: [Mono-dev] Compiling Mono with Visual Studio and .pdb files

Hi,

Thanks Miguel, your description helped me figure out a couple of key things. I'm gradually getting on top of the mcs/class  build process and its translation to VS solutions/projects. There was already a lot of prior work done by Sebastien Pouliot (I think) a few years ago.

That's not correct, all projects were regenerated recently. About the corlib-build issue, you don't need to build any of *-build.csproj projects, they are needed only on systems with no .NET 4 API. I have done some work on cleaning this up recently but it's not yet finished.

Marek

One thing I came across is that the project for "corlib-build" builds if targeting .Net 2.0, but fails on .NET 4.0 with a few errors such as follows. The only related issue I found (https://github.com/nikhilk/scriptsharp/issues/156) suggests that .NET4.5 may be the issue. Any advice on handling this is welcome. I need to add project dependencies on a couple of outputs from the "basic" profile to overcome the issue and still target 4.0. However I do not like the departure from the cygwin build process.

The type 'System.Diagnostics.TextWriterTraceListener' is defined in an assembly that is not referenced. You must add a reference to assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.                C:\src\mono\mono\mcs\class\corlib\System.Diagnostics\ConditionalAttribute.cs         35           11           corlib-build
The type 'System.Collections.Generic.ISet`1<T0>' is defined in an assembly that is not referenced. You must add a reference to assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.                C:\src\mono\mono\mcs\class\corlib\System.Collections.Generic\CollectionDebuggerView.cs               32           11                corlib-build


Cheers,
J-M
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120529/0262d0dd/attachment-0001.html>


More information about the Mono-devel-list mailing list