[Opensim-dev] Proposal for removing "ERROR: There was an error while scanning assembly:" message
Stefan Andersson
stefan at tribalmedia.se
Sat Apr 19 07:15:06 UTC 2008
Justin,
what was the problem with moving plug-in dll's to a separate directory?
Or, doesn't mono plugins support loading named plugins from an xml file, for example?
Wouldn't either of these solve the problem?
Best,
Stefan
> Date: Fri, 18 Apr 2008 20:00:38 +0100> From: jjustincc at googlemail.com> To: opensim-dev at lists.berlios.de; opensim-users at lists.berlios.de> Subject: [Opensim-dev] Proposal for removing "ERROR: There was an error while scanning assembly:" messages> > Hello,> > This is a technical post but I'm copying it to users for information. > You may (or may not) want to stop reading quickly :-)> > So, some of you may have noticed that the latest OpenSim revisions now > have many more of the subject error messages on the console. The cause > is the Mono Addins manager we're using, which writes these errors to the > console if the dll doesn't contain the configuration data it's expecting.> > So today I looked at removing these errors. I had to follow several > lines of investigation.> > 1. My initial thought was to move all the external libraries which are > causing the problem to a separate $OPENSIM_ROOT/lib/ext directory. > However, this means changes to make sure that the dlls can be found in > the new directory. For a cross platform application, it's hard. On > Microsoft's CLR we can simply use <Probing> in config files. However, > Mono does appear to support this, at least according to> > http://www.mono-project.com/Assemblies_and_the_GAC> > I tried it anyway, without success. Instead, the only option on Mono is > to either set the MONO_PATH or put the assemblies in the Global Assembly > Cache.> > 2. This makes things awkward, so instead I looked at moving the plugin > dlls. Same problem.> > 3. So instead I looked at simply suppressing the messages. > Unfortunately, the Mono addins code writes these messages out to the > console. Although in theory you could give it an IProgressMonitor and > stop this, all the classes for this (and the interface) are internal and > hence not accessible. Later versions of mono-addins than the one we are > using would appear to have the same problem.> > So although we could hack the code in 3. to remove the message (or even > replace or code our own plugin solution), the fact is that we really > need to have dlls in different directories eventually anyway - bin/ is > already overloaded. This means I'm forced to come back to suggestion > 1. Putting things in the GAC is unrealistic at this stage I think, so > I'm proposing that we move all the external libraries to > $OPENSIM_ROOT/lib/ext and set the MONO_PATH environmental variable to > point to this directory. Under Windows, we would instead put <Probing> > entries in the executable's config files.> > I tried setting MONO_PATH programatically in OpenSimMain.cs, but the set > doesn't look like it is exported so the load fails. The same path works > fine when exported from the command line.> > If we go the MONO_PATH route, then I think we could provide shell > scripts for all the executables to set the path and then launch the > program, even though this is a little messy. The executable itself > would complain loudly if it is not on Windows and MONO_PATH is unset > (which would be inconvenient for Windows mono users, though there may > not be that many of them).> > I'm open to constructive suggestions on this, particularly from core > developers.> > -- > justincc> Justin Clark-Casey> http://justincc.wordpress.com> > _______________________________________________> Opensim-dev mailing list> Opensim-dev at lists.berlios.de> https://lists.berlios.de/mailman/listinfo/opensim-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20080419/7de0799a/attachment-0001.html>
More information about the Opensim-dev
mailing list