Tony said:
No but I'm sure as I can be that only assembly dll can be put in the GAC.
Then why did you ask the question? Are you trying to trick us?
The purpose of GAC is that every application can share all the assemblies
that is stored in the GAC withount having their own copy of the assembly.
The purpose is actually somewhat more than that. Sure, it's great to
not have multiple copies of your DLL assemblies all over the disk. But
that's not the only use for the GAC.
My recollection is that multiple processes can only share assemblies in
RAM if they are from the GAC. And for strong-named pre-compiled
assemblies, being in the GAC means the signature doesn't have to be
verified every time the assembly is loaded, because that verification
happened when the assembly was put into the GAC.
Besides, if there's a benefit to not having multiple copies of DLLs all
over the disk, isn't there a benefit to not having multiple copies of
EXEs all over the disk?
But even ignoring all that:
Storing EXE in GAC would be strange and I assume that I'm not even allowed
to do so becuse it would mean nothing..
I know you already know that you can add an EXE as a reference to
another EXE assembly. So anything that is useful for DLLs is useful for
EXEs, since an EXE can be used just like a DLL (even if it's not the
most sensible use of an EXE).
If all of the above doesn't seem to answer your question, then I
recommend you just go try to install an assembly in the GAC and see what
happens.
Pete