[nem-en] assembly versioning
Michal Moskal
michal.moskal at gmail.com
Sun Feb 19 12:50:55 CET 2006
On 2/19/06, NoiseEHC <NoiseEHC at freemail.hu> wrote:
> I already checked that numerous times. BTW it is better to check
> c:\windows\assembly\gac_msil
> and c:\windows\assembly\nativeimages_v2.0.50727_32 since it will show
> all versions of files.
>
> So the theory is that Nemerle.Compiler.dll gets linked against Nemerle,
> Version=0.9.2.0 while
> we are loading Nemerle, Version=0.9.2.5. The problem is that
> Assembly.LoadFrom finds the
> old Nemerle.dll loaded, and tries to use that. See:
> http://blogs.msdn.com/suzcook/archive/2003/05/29/57120.aspx
May it be caused by the greedy assembly loading? Can you try -greedy- switch?
However I think there may be problems, if n.c.dll and n.m.dll use
different n.dll. That is I don't quite get why n.c.dll is linked to
different version of n.dll, than you're trying to link now.
> Now here is a question, please take it literally. Is the loading of
> assemblies the result of deep
> understanding of the fusion loader or is it just the end result of
> tweaking?
Something in between.
> In the latter case we
> should try to use Assembly.Load if the assembly reference is a
> partial/full assembly name,
> or Assembly.LoadFile if it is an exe or dll...
It is clear we want Assembly.LoadFrom when we have foo.dll or bar\baz\foo.dll.
It is also clear we want Assembly.Load when we have foo,Version=0.9.2,...
This is what we do.
The problem is with just "foo". We treat it as "foo.dll" and look in
the directories specified with the -L switch. This seemed the most
sensible solution for us. But you don't seem to be using it.
>
> Kamil Skalski wrote:
> > 06-02-17, NoiseEHC <NoiseEHC at freemail.hu> napisał(a):
> >
> >> Now, if I ngen uninstall ALL nemerle executables it compiles with 1000
> >> warnings like:
> >> ../macros/Profiling.n:112:3:121:4: warning: using type `[Nemerle,
> >> Version=0.9.2.5, Culture=neutral, PublicKeyToken=e080a
> >> 9c724e2bfcd]Nemerle.Utility.Identity`2' that was defined in more than
> >> one assembly: `[Nemerle, Version=0.9.2.0, Culture
> >> =neutral, PublicKeyToken=e080a9c724e2bfcd]Nemerle.Utility.Identity`2'
> >> (the first version was used)
> >>
> >
> > This happens sometimes for me when bootstraping compiler (using our
> > standard build system). I'm not sure what is the exact cause of this,
> > but probably it is realted to some older version of Nemerle.dll
> > installed into GAC. Could you verify that in WINDOWS\assembly\ view
> > there is no Nemerle.dll?
> >
> > --
> > Kamil Skalski
> > http://nazgul.omega.pl
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > https://nemerle.org/mailman/listinfo/devel-en
> >
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>
--
Michal Moskal,
http://nemerle.org/~malekith/
More information about the devel-en
mailing list