.Net Interview questions: - What is GAC, add/remove an assembly from GAC and how do we make choices between 2 versions of the same assembly?
This .NET interview questions will make you remember the basics of .NET if you are senior person in the .NET industry. For the fresher it is still a hiccup so one can start answering the same as follows: -
About GAC: -
GAC (Global Assembly Cache) is where all shared .NET assembly resides. GAC is used in the following situations: -
- If the application has to be shared among several application which is in the same computer.
- If the assembly has some special security, requirements like only administrators can remove the assembly. If the assembly is private then a simple delete of assembly the assembly file will remove the assembly.
Add/remove an assembly from GAC: -
You can use the 'GACUTIL' tool which comes with visual studio. So to register an assembly in to GAC go to "Visual Studio Command Prompt" and type "gacutil -i (assembly name)", where (assembly name) is the DLL name of the project.
One you have installed the assembly the DLL can be seen in 'c:windowsassembly' folder.
When we have many DLL's to be deployed we need to create setup and deployment package using windows installer. So the common way of deploying GAC DLL in production is by using windows installer.
Making choice between two versions of the same assembly in GAC: -
When we have two version of the same assembly in GAC we need to use binding redirect tag and specify the version we want to use in the new version property as shown in the below "app.config" file.
<assemblyIdentity name="ComputerName" publicKeyToken="cfc68d722cd6a164" />
<publisherPolicy apply="yes" />
<bindingRedirect oldVersion="184.108.40.206" newVersion="220.127.116.11" />
Get ready to see more basics videos of .NET interview questions on Garbage Collector, Gen 0, 1 & 2 as follows: -
Get more fundamentals stuffs on interview questions and answers for .NET
More from author's blogs on Most asked Dotnet interview questions for interview references.