8

我正在尝试在构建后事件中在 GAC 中注册和组装。这是我的构建后命令

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

我在 x64/Windows 7/VS2010 上。我以管理员身份运行 VS2010,并且关闭了 UAC(这几乎是我的 google-fu 为这个问题找到的所有内容)。

对于我可以在我的机器上找到的所有 4 个 gacutil.exe 实例,后期构建正在以代码 1 退出。

有人知道解决这个问题的方法吗?提前致谢。

4

6 回答 6

14

复制完整的构建后事件命令字符串(例如 ""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”到剪贴板,以管理员身份打开命令提示符,粘贴构建后事件,然后按回车键执行。您将获得更具描述性的解释退出代码。

就我而言,我将项目设置为构建到错误的目标框架。我将它从 .Net 4 切换到 .Net 3.5 并且错误消失了。

祝你好运

于 2012-01-27T00:48:27.833 回答
4

解决方案:

尝试以 ADMIN 身份运行 Visual Studio 以在 GAC 中安装东西... :)

于 2016-04-10T19:57:41.540 回答
2

我的通常是通过 iisreset 解决的。

于 2013-09-10T09:25:50.730 回答
1

操作系统:Windows 服务器 2012

.Net 框架 4.5

路径需要是:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe

于 2013-11-13T05:34:36.117 回答
1

看起来您的后期构建脚本不正确....尝试使用 "$(DevEnvDir)....\SDK\v2.0\Bin\GacUtil.exe" /i "$(TargetPath)" /f

于 2011-07-15T10:06:51.660 回答
0

我有同样的问题,我能够通过以下方式解决它:

  1. 使用Process Explorer查找并停止在 dll 上打开了句柄的任何其他进程
  2. 使用“gacutil /u AssemblyName”卸载程序集
  3. 增加项目属性中的程序集版本号 -> 程序集信息

在这些步骤之后,我的后期构建步骤再次开始工作。

于 2012-03-01T06:11:29.873 回答