[Mono-list] Compile vs. run
Chad Robinson
crj at lucubration.com
Thu Feb 2 19:24:10 EST 2006
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
More information about the Mono-list
mailing list