How to make my DLL global without gacutil?

4.7k Views Asked by At

I want to be able to use my DLL global so my exe will work even if the DLL is not in the same directory where the EXE is. So I read a lot about Global Assembly Cache And it says that I have to use gacutil.exe to register the DLL.

There are few problems: I have no Idea where the gacutil.exe is, it seems that it sits always somewhere else on every system. So I would have to use a recursive search for gacutil.exe and it will slow down the installation of my DLL. Or maybe check some registry keys.

On Windows XP I installed .NET 4 Framework but I could not find gacutil.exe anywhere.

I just tried to copy the gacutil.exe but the exe is not working on its own.

Is there a simple way to register my DLL in GAC? I don't want to mess around with gacutil. And I don't want to tell my clients to drag&drop the DLLs to GAC folder. I need a silent installation of my DLL. Or a system wide WORKING tool like regsvr32 in the old COM days...

2

There are 2 best solutions below

0
On

One of the solutions is to use the GacInstall method described below: MSDN

For more information see the following answer.

1
On

You can easily distribute gacutil utility with your assembly, just copy it with it. So during installation you run gacutil from installation folder.