When I do this:

s = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 
true);

this happens:

** (NetDump.exe:25323): WARNING **: Missing member SetSocketOption in type Socket, assembly /usr/lib/mono/gac/System/2.0.0.0__b77a5c561934e089/System.dll

Unhandled Exception: System.MissingMethodException: Method not found: 'System.Net.Sockets.Socket.SetSocketOption'.

The problem is the System.dll reference, somehow. I can run an EXE compiled in Visual Studio fine in Mono. But if I run an EXE that calls a DLL that calls a system function, then I have trouble. The above is in a DLL (of mine) referenced by the EXE (of mine).

Both the DLL and EXE are compiled in Windows. When I run it, I get the above. When I compile in Linux using the same code, it works fine.

Is this by design, or a known issue, or am I simply doing something wrong? If the former, no problem - I'll just do a separate build on Linux for executables being sent to Linux systems. But if it's ME, I'd obviously love to know so I can fix it. =)

It looks like it might be something to do with versioning, but that doesn't make too much sense to me - the new Socket() constructor should be there, too, and that works fine. I'm a versioning novice, so maybe I'm wrong.

Thanks,
Chad
_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to