What do you know about .NET assemblies?
Assemblies are the smallest units of versioning and
deployment in the .NET application. Assemblies are also
the building blocks for programs such as Web services,
Windows services, serviced components, and .NET Remoting
What’s the difference between private and shared
Private assembly is used inside an application only and
does not have to be identified by a strong name. Shared
assembly can be used by multiple applications and has to
have a strong name.
What’s a strong name?
A strong name includes the name of the assembly, version
number, culture identity, and a public key token.
How can you tell the application to look for assemblies
at the locations other than its own install?
directive in the XML .config file for a given
<probing privatePath=”c:\mylibs; bin\debug” />
should do the trick. Or you can add additional search
paths in the Properties box of the deployed application.
How can you debug failed assembly binds?
Use the Assembly Binding Log Viewer (fuslogvw.exe) to
find out the paths searched.
Where are shared assemblies stored?
Global assembly cache.
How can you create a strong name for a .NET assembly?
With the help of Strong Name tool (sn.exe).
Where’s global assembly cache located on the system?
Usually C:\winnt\assembly or
Can you have two files with the same file name in GAC?
Yes, remember that GAC is a very special folder, and
while normally you would not be able to place two files
with the same name into a Windows folder, GAC
differentiates by version number as well, so it’s
possible for MyApp.dll and MyApp.dll to co-exist in GAC
if the first one is version 220.127.116.11 and the second one
So let’s say I have an application that uses MyApp.dll
assembly, version 18.104.22.168. There is a security bug in
that assembly, and I publish the patch, issuing it under
name MyApp.dll 22.214.171.124. How do I tell the client
applications that are already installed to start using
this new MyApp.dll?
Use publisher policy. To configure a publisher policy,
use the publisher policy configuration file, which uses
a format similar app .config file. But unlike the app .config
file, a publisher policy file needs to be compiled into
an assembly and placed in the GAC.
What is delay signing?
Delay signing allows you to place a shared assembly in
the GAC by signing the assembly with just the public
key. This allows the assembly to be signed with the
private key at a later stage, when the development
process is complete and the component or assembly is
ready to be deployed. This process enables developers to
work with shared assemblies as if they were strongly
named, and it secures the private key of the signature
from being accessed at different stages of development.