问题
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.
回答1:
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.
回答2:
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.
回答3:
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
回答4:
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
回答5:
From Wikipedia:
gacutil.exe is the .NET utility used to work with the GAC.
One can check the availability of a shared assembly in GAC by using the command:
gacutil.exe /l "assemblyName"
One can register a shared assembly in the GAC by using the command:
gacutil.exe /i "assemblyName"
Or by dropping an assembly file into the following location using the GUI:
%windir%\assembly\
Other options for this utility will be briefly described if you use the /? flag, that is:
gacutil.exe /?
回答6:
Run Developer Command Prompt For V2012 or any version installed in your system
gacutil /i pathofDll
Enter
Done!!!
回答7:
Try GACView if you have a fear of command prompts.
You have not set the PATH properly in DOS.You need to point the path to where the gacutil resides to use it in DOS.
回答8:
As ando said, just drag and drop the assembly to the C:\windows\assembly folder. It works.
回答9:
In case on windows 7 gacutil.exe (to put assembly in GAC) and sn.exe(To ensure uniqueness of assembly) resides at C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
Then go to the path of gacutil as shown below execute the below command after replacing path of your assembly
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin>gacutil /i "replace with path of your assembly to be put into GAC"
回答10:
From Publish tab go to application Files click then unnecessary files do the exclude than ok. Build project files.And run projects.
回答11:
The above solutions look marvelous. However, to be simple, all you need I guess is to enter the assembly name along with its full path like:
gacutil -i C:\MyDlls\GacDeployedAssemblies\dllname.dll
Paying attention to C:\MyDlls\GacDeployedAssemblies
来源:https://stackoverflow.com/questions/2182316/how-do-i-register-a-net-dll-file-in-the-gac