[Mono-devel-list] Running multiple assembliy versions in parallel
jonpryor at vt.edu
Thu Sep 25 07:23:31 EDT 2003
On Thu, 2003-09-25 at 01:07, Yuri Astrakhan wrote:
> Does mono have support for running multiple versions of the same code
> in parallel the way .net does?
Mono has support for AppDomains (though it was somewhat broken last I
checked), which is one of the requirements for loading multiple assembly
versions. (At least, I think you can only have one assembly version
loaded in each AppDomain; I could be wrong. If it is wrong, it doesn't
really effect the following arguments much.)
As for actual assembly versions... Mono doesn't have a Global Assembly
Cache (GAC), so the only way to have two different versions of the same
assembly is to actually rename the assembly, e.g. Assembly-v1.dll and
Assembly-v2.dll. In which case they look just like two different
assemblies, and will likely be treated as such. :-D
In other words, this question has many sub-questions, which can be
answered separately, but probably don't answer your actual question.
True versioning support likely requires the GAC, which isn't implemented
Conceptually, adding the GAC shouldn't change the VM/JIT much; you just
consider different assembly versions to be entirely different assemblies
-- which is the current situation -- and move on from there. The GAC
comes into play when you're trying to *find* the assembly to load/JIT
against (same major version, but different minor versions are permitted,
unless the <program>.config file says otherwise, etc.).
> Is this feature planned
GAC support is planned, but I don't know when Mono will implement it.
> , and more importantly, is that a major code rewrite, or is it more
> like an add-on feature that would make a good VM learning project.
It shouldn't require rewriting lots of code. It will likely require
changing existing code for assembly looking/assembly binding via the
GAC, but I don't think that would require a major rewrite.
> In your opinion, how much effort would this require to implement?
GAC support has been raised in the past, and the answer (IIRC) was ~3
Then again, re-writing System.Xml was considered to take a year, and Ben
Maurer did it in little more than a month:
So, the actual answer won't be determined until it's actually written.
More information about the Mono-devel-list