> contained the ref I need, but surely it can not be the idea to find it
> there.

I'm sure there's an API to get it, I just haven't run across it yet.
Historically, this information is made available via fusion.dll.
There's at least one sample of using fusion.dll in the .net sdk sample
directory (search for fusioninstall.cs, I have one here[1], and you can
get lots of documentation on the entrypoint signatures from fusion.idl &
fusion.h in the rotor sources).

So I think it's a matter of looking hard enough to find the api that the
MMC snap-in is using.  I've looked around a bit, but don't have anymore
time to look into it.

>
> Again, asking for the properties of a gac-ed assembly using the .Net
> Configuration MMC snap-in, nicely shows the path, even if
> this file was
> added /i only.
>

Yes, I just realized that /i alone seems to record the original install
location as "URL" in the __AssemblyInfo__.ini file).

The /ir flag appears to be intended to be used by installers that are
taking care of the situation where more than one application is
installing the same shared library into the gac and wants to make sure
that their corresponding uninstallers don't removing something from the
gac while another application still needs it.

So on installation, /ir will be used by an installer (or you) to record
the fact that your application has a "reference" to that library.  Other
applications will do the same thing.  Uninstallers will then use /ur to
remove their "reference" and then use /u to remove the assembly.  Only
when the last installation "reference" has been removed will the /u
actually remove the assembly.  If one or more 'references' still exist,
/u doesn't remove the assembly from the cache.

-Mike
DevelopMentor
http://staff.develop.com/woodring

[1] http://staff.develop.com/woodring/dotnet/#enumcache

Reply via email to