I tried every minor version between 2.0 and 3.0. I found that versions <= 2.4 work, but versions> = 2.6 do not. I checked the Release Notes for v2.6 , but could not find anything that could explain this. Then I googled "mono 2.6 windows 2000" and found that there was a critical error in Windows 2000 :
Getaddrinfo entry point not found in WS2_32.DLL in Windows 2000
In my case, the error message and Dr. Watson is disabled, so the error message probably swallowed Windows (I did tests on an industrial PC, where the error message ran important programs). I tried turning it on, but I still don't have an error message - mono and mcs just stop doing nothing. Despite this, I think this is a problem, because it is a version-related error, show-stopper, and in my case the versions are the same.
Mono developer Zoltan Varga added the following comment to the bug report:
Unlike freeaddrinfo, getaddrinfo is really required in parts of mono, so its use cannot be eliminated without disabling some functions. MSDN also offers Wspiapi.h, which we cannot do, since it is part of the MS Platform SDK, and this is not in cygwin / mingw, which we use to compile mono releases. So you probably have to compile your own version of mono on windows and work around these issues.
The solution proposed by MSDN , which Zoltan spoke of, is as follows:
Support for getaddrinfo on Windows 2000 and earlier . The getaddrinfo function was added to Ws2_32.dll in Windows XP and later. To run an application that uses this feature in earlier versions of Windows, you need to include the Ws2tcpip.h and Wspiapi.h files. When the Wspiapi.h include file is added, the getaddrinfo function is defined by the WspiapiGetAddrInfo built-in function in the Wspiapi.h file. At run time, the WspiapiGetAddrInfo function is implemented in such a way that if Ws2_32.dll or Wship6.dll (the file containing getaddrinfo in the IPv6 technology preview for Windows 2000) does not include getaddrinfo, then the getaddrinfo version is implemented inline based on the code in the Wspiapi header file. h. This embedded code will be used on older Windows platforms that do not support the getaddrinfo function.
This error was filed in 2010, received priority level 5 and has not been resolved since. This basically means that until someone solves this error, Windows 2000 is not supported by Mono> = 2.6 .
(I plan to try to apply the modifications suggested by MSDN and rebuild Mono 3.0 using VS2005 , but this seems to be not an easy task. If successful, I will update the answer.)