README.vsnet 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. README.vsnet Last updated: 2006-02-01
  2. SVN includes a Visual Studio .NET 2005 solution, mono.sln, and some
  3. projects files to build most of the unmanaged parts in Mono.
  4. The "mono.sln" solution file contains the VC projects files for:
  5. * Embedded Samples
  6. * test-invoke.vcproj
  7. * test-metadata.vcproj
  8. * teste.vcproj
  9. * Libraries
  10. * libgc.vcproj
  11. * libmono.vcproj
  12. * Tools
  13. * genmdesc.vcproj
  14. * monoburg.vcproj
  15. * monodiet.vcproj
  16. * monodis.vcproj
  17. * monograph.vcproj
  18. * pedump.vcproj
  19. * mono.vcproj
  20. REQUIREMENTS
  21. * A working (i.e. where you could succesfully build mono) cygwin
  22. (http://www.cygwin.com/) setup! This is required to:
  23. * generate some files (via monoburg and genmdesc);
  24. * build the class libraries; and
  25. * test for regressions.
  26. * Visual Studio .NET 2005. Previous Visual Studio versions may work or
  27. requires, hopefully minimal, changes.
  28. * VSDependencies.zip must be decompressed under the /mono/ directory
  29. (otherwise you will need to edit all the projects files). This file can
  30. be downloaded from http://www.go-mono.com/archive/VSDependencies.zip
  31. LOCAL CHANGES
  32. Sadly solution/projects files aren't easy to move from computers to
  33. computers (well unless everyone follow the same naming convention) so
  34. you'll likely have to changes some options in order to compile the
  35. solution.
  36. * each executed assembly (i.e. the EXE) must be able to find a
  37. working mscorlib.dll (and all the other required assemblies).
  38. This can be done in different ways. My preference is to use the
  39. project "properties pages" in the "Configuration Properties
  40. \Debugging\Environment" options and set MONO_PATH to the class
  41. libraries directory build by cygwin (local) or on Linux
  42. (remote).
  43. e.g. MONO_PATH=z:\svn\mcs\class\lib\default\
  44. allows me to use the class libs build under Linux, while
  45. MONO_PATH=C:\cygwin\opt\mono\lib\mono\1.0
  46. use the one built from cygwin (after a make install)
  47. Some useful informations to adapt the solution/project files...
  48. * My cygwin root dir is: c:\cygwin\
  49. * My username is: poupou
  50. * My mono install prefix is: /opt/mono
  51. BUILDING
  52. Once everything is installed (and edited) you can right-click on the
  53. "mono" solution (in the "Solution Explorer"), select "Clean
  54. Solution" (for the first time) then "Build Solution".
  55. KNOWN ISSUES
  56. [1] Most, BUT NOT ALL, the regressions tests pass under this build. The
  57. failures seems limited to some mathematical differences and to code
  58. relying on the stack walking functions. The hacks to replace the GCC
  59. functions (__builtin_frame_address and __builtin_return_address) are
  60. incomplete;
  61. [2] The solution doesn't provide complete (i.e. from scratch) build. It
  62. requires a working cygwin environment to create some files (e.g. via
  63. genmdesc, monoburg). This isn't so bad as without cygwin you wouldn't be
  64. able to test Mono properly (see REQUIREMENTS);
  65. [3] Only the Debug target is configured properly (that would be easy to
  66. fix, but would require turning off some optimizations like omitting
  67. stack frames). Anyway there are other issues [1] to fix before switching
  68. to Release and IMHO the _biggest_ advantage to VS.NET is it's debugger/
  69. debugging tools;
  70. [4] The C compiler emits _lots_ of warning during compilation. Some
  71. warnings have been turned off for some projects (there was so much that
  72. it slowed down compilation). You can bring them back (or hide more of
  73. them) using the project "properties pages" windows, "Configuration
  74. Properties\C/C++\Advanced\Disable Specific Warnings";
  75. [5] Visual Studio 2005 should have all the latest header files required,
  76. but if not (or if you're using an older version of VS) then install MS
  77. Platform SDK (Windows Server 2003 is the latest) to ensure you have the
  78. latest Windows header files. You can download it from:
  79. http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
  80. [6] Not everyone has VS.NET so it is possible you may have to add some
  81. (new) files to the build from time to time. See "more informations" for
  82. reporting those changes.
  83. [7] Probably a lot more I didn't discover... or has changed since.
  84. MORE INFORMATION
  85. Please email <[email protected]> if you have any problem
  86. and/or if there's something wrong/missing in the instructions.
  87. An online version of this file is available at
  88. http://www.mono-project.com/Compiling_Mono_VSNET