问题
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.
回答1:
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
回答2:
Mine is usually solved by iisreset.
回答3:
SOLUTION:
Try to run Visual Studio as ADMIN to install things in GAC... :)
回答4:
Looks like your post build script is incorrect....Try using "$(DevEnvDir)....\SDK\v2.0\Bin\GacUtil.exe" /i "$(TargetPath)" /f
回答5:
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
回答6:
I had the same problem, I was able to fix it by:
- Finding and stopping any other processes that had a handle open on the dll using Process Explorer
- Uninstalling the assembly with "gacutil /u AssemblyName"
- Increasing the Assembly Version Number in Project Properties -> Assembly information
After these steps my post build step started working again.
来源:https://stackoverflow.com/questions/6656235/gacutil-postbuild-event-exists-with-code-1