load .NET assembly

  • Thread starter Thread starter RedLars
  • Start date Start date
R

RedLars

How does an executable (managed or unmanaged) load an .NET assembly ?

A dotnet 1.0 application I'm debugging atm seems to (one computer)
load dotnet 2.0 assemblies instead of the specified 1.0 version (all
assembly reference in the vs2002 solution for the application point to
dotnet 1.0). Due to changes in the api between these two dotnet
version the application will not run properly when using an incorrect
version. The computer contains dotnet 1.0 \ 1.1 \ 2.0 \3.0.

Any hints on an utility or article that could shed some light on this
situation ?

Ta,
 
The .Net Subsystem responsible for this is called Fusion. You can run the
Fusion Log Viewer (fuslogvw.exe) to take a look at what's being loaded, and
why.

There are a number of articles that should popup if you search using the
terms above. A gooding starting point is:http://blogs.msdn.com/junfeng/archive/2004/02/14/72912.aspx

Thanks for the reply.

Fuslogvw.exe looks like an interesting utility.

Since this problem occured I've been a bit curious about the procedure
for an executables for loading .NET assemblies. I mean, there seems to
many possible combinations of events (mananged \ unmanage main
application, strong name, gac, different policy files etc). Does
microsoft have any kind of documentation for this ?
 
There's tons of documentation on this, some formal, and a signifigant amount
through the MSDN Bloggers. Just hit google with the relevant keywords and
you'll get more information than you can shake a stick at.

The best overall resource I see is:http://blogs.msdn.com/suzcook/archive/tags/Loader+Info/default.aspx

Some of her specific blogs are just excellent:http://blogs.msdn.com/suzcook/archi...sdn.com/suzcook/archive/2003/06/13/57180.aspx

--
Chris Mullins









- Vis sitert tekst -

Thanks for the reply.

Just a quick question. On a WinXP computer with .NET 1.1 and 2.0
installed. When running a c# application compiled with .NET 1.0,
since .NET 1.0 isnt installed on the computer it loads .NET 2.0
assemblies. Why does it pick 2.0? Is the newest version always default
in situations like this?

Btw, this was a good read; http://www.ondotnet.com/pub/a/dotnet/2003/03/17/bindingpolicy.html
 
Just a quick question. On a WinXP computer with .NET 1.1 and 2.0
installed. When running a c# application compiled with .NET 1.0,
since .NET 1.0 isnt installed on the computer it loads .NET 2.0
assemblies. Why does it pick 2.0? Is the newest version always default
in situations like this?

It is my understanding that the latest version of the .Net framework will
be used if version used to compile the app is not present.
 
Back
Top