[Opensim-dev] Needing Mono.Security.dll on Windows at PostgreSQL module
Justin Clark-Casey
jjustincc at googlemail.com
Wed Oct 16 17:43:19 UTC 2013
Yes, this is also available as OpenSim.Framework.Util.IsPlatformMono().
On 16/10/13 18:28, Fernando Francisco de Oliveira wrote:
> the test I put at code was testing Type.GetType("Mono.Runtime") if it return null that's not running on mono.
>
>
> Fernando Oliveira
> http://oliveira.eti.br
>
> http://twitter.com/oliveira_lands
>
>
>
>
> 2013/10/16 Sean McNamara <smcnam at gmail.com <mailto:smcnam at gmail.com>>
>
> On Wed, Oct 16, 2013 at 12:35 PM, Justin Clark-Casey
> <jjustincc at googlemail.com <mailto:jjustincc at googlemail.com>> wrote:
> > A small point - can this be in the directory bin/lib/.NET/ rather than
> > Windows/? This makes it clear that it's a library directory and only
> > required under .NET (since you can theoretically run Mono in Windows, though
> > admittedly probably pretty much nobody does this).
>
> And now that you brought that up, the obvious follow-up question is,
> can we reliably detect whether OpenSim is being run under Mono or the
> .NET Framework? As you pointed out, Mono runs on Windows, and it is
> possible that someone running OpenSim under Mono on Windows would
> *pass* the Win32 platform check and get our shipped Mono.Security.dll
> loaded, which would conflict with the Mono.Security.dll shipped with
> the user's Mono version and perhaps cause exceptions.
>
> So the condition for loading the bin/lib/.NET/*.dll would be: on Win32
> AND running the Microsoft .NET Framework (or, by implication, NOT
> Mono)
>
> >
> >
> > On 16/10/13 12:49, Fernando Francisco de Oliveira wrote:
> >>
> >> Yesterday I tested my code, and already patched it to load the
> >> Mono.Security.dll from bin/windows folder only when the
> >> program was running on windows.
> >>
> >> It was put at first attempt to load it from PGSQL module. and it worked
> >> fine at windows. I didn't tested on linux yet.
> >> and still need to test also on Robust.
> >>
> >> The implementation was exacly what Sean described, an event that is fired
> >> when any assembly isnt found at default
> >> directories, then I verify if it is running Mono environment and only use
> >> Assembly.Load when it's not. The librarie is
> >> stored at bin/windows folder, so the program don't load it unless for this
> >> code.
> >>
> >>
> >>
> >>
> >> Fernando Oliveira
> >> http://oliveira.eti.br
> >>
> >> http://twitter.com/oliveira_lands
> >>
> >>
> >>
> >>
> >> 2013/10/16 Latif Khalifa <latifer at streamgrid.net <mailto:latifer at streamgrid.net>
> >> <mailto:latifer at streamgrid.net <mailto:latifer at streamgrid.net>>>
> >>
> >>
> >> We used to ship Mono.Security.dll with libopenmetaverse. It caused
> >> all sorts of trouble for Linux users, because mono on startup will
> >> load the one from cwd preferably. So shipping it in bin/windows that
> >> mono will not know about is the only way to go.
> >>
> >> I wish we thought of this approach back then ;)
> >>
> >> On Wed, Oct 16, 2013 at 5:08 AM, Fernando Francisco de Oliveira
> >> <fernando at oliveira.eti.br <mailto:fernando at oliveira.eti.br> <mailto:fernando at oliveira.eti.br
> <mailto:fernando at oliveira.eti.br>>> wrote:
> >> > Hello
> >> >
> >> > I was investigating the bug
> >> > (http://opensimulator.org/mantis/view.php?id=6803) found that
> >> > Mono.Security.dll which is packaged with Npgsql.dll library is
> >> needed on
> >> > Windows, but can't be distributed on Linux, because mono already
> >> have it and
> >> > gives conflicts error.
> >> >
> >> > I would like to discuss about distributing the Mono.Security.dll on
> >> a folder
> >> > above bin like "bin/windows" folder, which could contains the
> >> libraries that
> >> > only is needed on windows.
> >> >
> >> > I did a change on PGSQL project to load dynamicaly Mono.Security
> >> only if
> >> > it's running on Windows, and from that folder.
> >> > If it running on Mono, it load it from GAC (if available) and don't
> >> load the
> >> > windows dll.
> >> >
> >> > http://pastebin.com/WdzfmbSr
> >> >
> >> > Let's talk about it ?
> >> >
> >> > Fernando Oliveira
> >> > http://oliveira.eti.br
> >> >
> >> >
> >> >
> >> > _______________________________________________
> >> > Opensim-dev mailing list
> >> > Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de> <mailto:Opensim-dev at lists.berlios.de
> <mailto:Opensim-dev at lists.berlios.de>>
> >>
> >> > https://lists.berlios.de/mailman/listinfo/opensim-dev
> >> _______________________________________________
> >> Opensim-dev mailing list
> >> Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de> <mailto:Opensim-dev at lists.berlios.de
> <mailto:Opensim-dev at lists.berlios.de>>
> >>
> >> https://lists.berlios.de/mailman/listinfo/opensim-dev
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Opensim-dev mailing list
> >> Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
> >> https://lists.berlios.de/mailman/listinfo/opensim-dev
> >>
> >
> >
> > --
> > Justin Clark-Casey (justincc)
> > OSVW Consulting
> > http://justincc.org
> > http://twitter.com/justincc
> >
> > _______________________________________________
> > Opensim-dev mailing list
> > Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
> > https://lists.berlios.de/mailman/listinfo/opensim-dev
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de <mailto:Opensim-dev at lists.berlios.de>
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
>
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>
--
Justin Clark-Casey (justincc)
OSVW Consulting
http://justincc.org
http://twitter.com/justincc
More information about the Opensim-dev
mailing list