8

I am trying to register and assembly in the GAC on a post-build event. Here's my post-build command

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /if "$(TargetPath)"

I am on x64/Windows 7/VS2010. I am running VS2010 as an administrator and I have UAC turned off (which is pretty much all that my google-fu is finding for this problem).

The post build is exiting with code 1 for the all 4 instances of gacutil.exe I can find on my machine.

Anyone know a way around this? Thanks in advance.

JMorgan
  • 805
  • 4
  • 11
  • 24
  • This actually started working after a rebuild of my dev machine. So I am not sure what the issue was. – JMorgan Jun 14 '12 at 12:49
  • The error that displays in the shell is "Failure adding assembly to the cache: The process cannot access the file because it is being used by another process." – RJ Cuthbertson May 09 '13 at 15:10

6 Answers6

14

Copy the full post-build event command string (e.g. ""C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64\gacutil.exe" /if "D:\ProjectFolder\Project.Name\bin\Debug\Project.Name.dll" to the clip board, open a command prompt as an administrator, paste the post-build event, and press enter to execute. You'll get a more descriptive explanation of the exit code.

In my case, I had my project set to build to the wrong target framework. I switched it from .Net 4 to .Net 3.5 and the error went away.

Best of luck

rjsidler
  • 141
  • 1
  • 3
4

SOLUTION:

Try to run Visual Studio as ADMIN to install things in GAC... :)

2

Mine is usually solved by iisreset.

Entwickler
  • 255
  • 2
  • 12
bresleveloper
  • 5,940
  • 3
  • 33
  • 47
1

OS: Windows server 2012

.Net frame work 4.5

The path needs to be: C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe

user849169
  • 36
  • 3
1

Looks like your post build script is incorrect....Try using "$(DevEnvDir)....\SDK\v2.0\Bin\GacUtil.exe" /i "$(TargetPath)" /f

Vinay
  • 11
  • 1
0

I had the same problem, I was able to fix it by:

  1. Finding and stopping any other processes that had a handle open on the dll using Process Explorer
  2. Uninstalling the assembly with "gacutil /u AssemblyName"
  3. Increasing the Assembly Version Number in Project Properties -> Assembly information

After these steps my post build step started working again.

dmck
  • 7,801
  • 7
  • 43
  • 79