How do I register a .NET DLL file in the GAC?
I have made a .NET .DLL
file, which I want to register in the GAC.
I have used this command in Windows Server 2003 Command Prompt:
C:\"Path of dll"\>gacutil /i dllname.dll
'gacutil' is not recognized as an internal or external command,
operable program or batch file.
It says the path is not correct.
Do I need to use this in a .NET cmd prompt? If it is that, I am not able to locate the .NET cmd prompt.
You can do that using the gacutil
tool. In its simplest form:
gacutil /i yourdll.dll
You find the Visual Studio Command Prompt in the start menu under Programs -> Visual Studio -> Visual Studio Tools.
You'll need:
- Strong name your assembly (Visual Studio, Project Properties, Signing tab, Sign the assembly)
- Alter your Build Events (Project Properties, Build Events tab, Post-build command line)
cd C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin gacutil.exe /i "$(TargetPath)" /f /nologo gacutil /l "$(TargetName)" /nologo
Now, everytime you build your project, it'll be installed on GAC.
Just drag and drop the DLL file into folder C:\Windows\assembly
using Windows Explorer.
Caveat:
In earlier versions of the .NET Framework, the Shfusion.dll Windows shell extension let you install assemblies by dragging them to File Explorer. Beginning with .NET Framework 4, Shfusion.dll is obsolete.
Source: How to: Install an assembly into the global assembly cache
These responses don't tell you that gacutil resides in C:\WINDOWS\Microsoft.NET\Framework\v1.1* by the way.
I didn't have it in my v2.0 folder. But I tried dragging & dropping the DLL into the C:\WINDOWS\Assembly folder as was suggested here earlier and that was easier and does work, as long as it's a .NET library. I also tried a COM library and this failed with an error that it was expecting an assembly manifest. I know that wasn't the question here, but thought I'd mention that in case someone finds out they can't add it, that that might be why.
-Tom