J
julien
Hello,
I read several articles about the GAC. Here is my understanding
The GAC has 2 main purposes:
a/ avoid having the same shared dll loaded several times by different
programs
b/ several versions of a dll can run in parallel. It is also easy to
update the version of a dll in a GAC without rebuilding the applications
that depend on it
For security reasons, DLLs loaded in the GAC must have a strong name so
that a trusted DLL cannot be replaced by a malicious library.
I still have a couple of questions about the GAC:
1/ I've seen a couple of articles that make a difference between private
libraries (not to be loaded in the GAC) and shared libraries (to be
loaded in the GAC). My (stupid!) question would be: instead of
separating private libraries from shared libraries, if we know that a
private library will run all the time, can I just load it in the GAC
(and so having a single DLL with shared objects and private objects)?
2/Let's say I have the library Shared.dll signed by the vendor MyCompany
used by a couple of applications. Later, I find out that the vendor
OtherCompany has a 100% compatible library with Shared.dll, but with
less bugs, called OtherShared.dll. So, I would like to swap these 2
libraries without rebuilding all the applications depending on it
(especially if I don't have their source code). Is it possible to do
this? How?
Thank you
Julien
I read several articles about the GAC. Here is my understanding
The GAC has 2 main purposes:
a/ avoid having the same shared dll loaded several times by different
programs
b/ several versions of a dll can run in parallel. It is also easy to
update the version of a dll in a GAC without rebuilding the applications
that depend on it
For security reasons, DLLs loaded in the GAC must have a strong name so
that a trusted DLL cannot be replaced by a malicious library.
I still have a couple of questions about the GAC:
1/ I've seen a couple of articles that make a difference between private
libraries (not to be loaded in the GAC) and shared libraries (to be
loaded in the GAC). My (stupid!) question would be: instead of
separating private libraries from shared libraries, if we know that a
private library will run all the time, can I just load it in the GAC
(and so having a single DLL with shared objects and private objects)?
2/Let's say I have the library Shared.dll signed by the vendor MyCompany
used by a couple of applications. Later, I find out that the vendor
OtherCompany has a 100% compatible library with Shared.dll, but with
less bugs, called OtherShared.dll. So, I would like to swap these 2
libraries without rebuilding all the applications depending on it
(especially if I don't have their source code). Is it possible to do
this? How?
Thank you
Julien