问题标签 [gacutil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
9464 浏览

assemblies - 如何在 Windows 7 GAC 中注册 Assembly .net 4.0?

嗨,我正在使用 vs2010 创建一个我假装在 GAC 上注册的 .net 4.0 程序集。

我找不到 gacutil 并且不知道如何在 4.0 GAC 上注册程序集

有人可以帮忙吗?

找到的解决方案: 使用位于以下位置的 GacUtil 注册:C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools

0 投票
1 回答
794 浏览

.net - 在 GAC 中有 2 个版本的 MySql.Data 程序集是否有问题?

我在 GAC 中有 2 个版本的 MySql.Data 程序集

全局程序集缓存包含以下程序集:MySql.Data, Version=5.2.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL MySql.Data, Version=6.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture= MSIL

当我的类库尝试查找 MySql.Data 时,它们会相互冲突吗?

我使用 gacutil 注册了 6.4.3.0 版本,如下所示:

如果我想手动注销特定版本的程序集,通过 gacutil 执行此操作的命令行是什么?

0 投票
2 回答
1586 浏览

msbuild - MSBuild 社区任务 GacUtil 默默地为我失败

我有一个开源 .NET 项目,其主要工件是一个 DLL,需要将其安装到 GAC 以用于其主要用例。因此我想在 AfterBuild 任务期间安装它。我正在使用MSBuild Community Extensions中的 GacUtil msbuild 任务。它不工作。

我从这里得到的 MSBuild 代码是:

我使用的命令是msbuild /t:AfterBuild /verbosity:diagnostic. 我得到的错误是:

我正在从以管理员身份运行的 cmd.exe 副本执行此命令,其中 gacutil.exe 在其路径中。我使用这个相同的命令提示符从 GAC 成功安装和卸载了这个程序集,并仔细检查了该程序集是否不在 c:\windows\assembly 文件夹中。

我如何找出 GacUtil 失败的原因?

0 投票
1 回答
1642 浏览

gac - 如何判断哪些应用程序在 GAC 中注册了给定程序集?

尝试使用 gacutil.exe 删除给定程序集(在本例中为 log4net.dll,但它应适用于任何类似情况)时,由于应用程序需要该程序集,操作失败。但是,我不知道如何判断哪些应用程序实际需要它。由于输出似乎表明该要求已记录在 MSI 数据库/Windows Installer 中,因此某些实用程序似乎能够列出在 MSI 数据库中注册的所有 GAC 程序集(我可以只使用 log4net 搜索条目.dll)或允许我指定一个特定的 GAC 程序集,它会列出依赖项(如果存在的话,最好包含任何相关的依赖项链:)

谢谢!

0 投票
2 回答
10069 浏览

.net - 全局程序集缓存查看器工具(查看器)

要查看全局程序集缓存中的程序集列表,请在命令提示符处键入以下命令:gacutil –l

在早期版本的 .NET Framework 中,Shfusion.dll Windows shell 扩展使您能够在 Windows 资源管理器中查看全局程序集缓存。从 .NET Framework 版本 4 开始,Shfusion.dll 已过时。

任何可视化工具都可以查看 .NET 4.0 - CLR 4.0 中全局程序集缓存的内容?我想要查看器工具而不是执行命令行(gacutil -l)。

更新:

Nirsoft.net 的 GACView 不支持 .NET 4.0 (CLR 4.0)

http://www.nirsoft.net/dot_net_tools/gac_viewer.html

2012 年 3 月更新:

广汽浏览器 http://gacbrowser.blogspot.com/2008/03/gac-browser-introduction.html

0 投票
1 回答
310 浏览

visual-studio - 在 Visual Studio 2005 项目中包含使用 Visual Studio 2010 构建的 DLL

我有一个在 Visual Studio 2010 中构建的 dll 库,但我需要将它包含在 VS 2005 项目中。

如果我这样做,我会收到错误消息

This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

我用谷歌搜索了错误消息,但我发现的唯一解决方法是将位于的位置替换gacutil.exeC:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin位于gacutil.exeC:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools.

我尝试过这种方式,但我仍然遇到同样的错误。

0 投票
1 回答
1127 浏览

.net - GacUtil + .net 框架 4.0

我使用 Visual Studio 2010 命令提示符向 GAC 添加了一个程序集。

它显示一条消息:

程序集已成功添加到缓存中。

但它在中不可见C:\WINDOWS\assembly,我读到 .NET Framework GAC 已移至C:\WINDOWS\Microsoft.NET\assemblyv4.0 程序集。我也在那里搜索了我的程序集,但我找不到它。那么在哪里可以找到 .NET Framework v4.0 的已安装程序集?

0 投票
2 回答
1778 浏览

.net - 使用 gacutil.exe 安装生产程序集安全吗?

MSDN 声明gacutil.exe 不能安全地用于生产服务器。这样做有正当理由还是微软只是在练习一点 CYA?忽略此警告是否安全?还是我最终应该学习如何使用 Microsoft Windows Installer 2.0?

MSDN 的确切措辞:

Gacutil.exe 仅用于开发目的,不应用于将生产程序集安装到全局程序集缓存中。

0 投票
2 回答
3573 浏览

.net-4.0 - .NET 4.0 GAC - 无法添加 DLL

我正在使用命名空间在表单上System.Windows.Forms.DataVisualization.Charting创建一个Chart对象。这个 DLL 不是基本 Windows 安装的一部分,所以当我分发我的应用程序时,我需要将它包含在我的包中。

我知道GacUtil.exe 的新版本,而且Gacutil.exe 仅用于开发目的,不应用于将生产程序集安装到全局程序集缓存中。 让我们假设我在这件事上别无选择,并且由于使用了专有的包分发系统而不得不这样做。=)

编辑/更新:在 2.0 运行时,即使某些 PC 没有 GacUtil.exe 出现在预期的安装 PC 上,我可以在 PC 上删除 GacUtil.exe(2.0 版本),然后我可以 GAC 任何我需要的额外程序集。这似乎是 4.0 运行时中的一个问题。尽管我已将 GacUtil.exe (4.0) 复制到目标 PC,但在针对所需程序集运行它时,我没有收到任何反馈。结束编辑/更新

现在,在我的 PC(开发 PC)上,我可以毫无问题地将 DLL 添加到 GAC: 我的电脑上的命令提示符

但是,在干净的 Windows 7 PC 上,使用相同的 DLL 和相同版本的 GacUtil.exe 我得到了这个: 干净电脑上的命令提示符

为什么会出现差异?新的 GacUtil.exe 是否依赖于这台 PC 没有的东西?

0 投票
3 回答
10105 浏览

.net - 我应该使用什么 gacutil.exe?

因此,在 Win 2008 R2 Std x64 上,我有 6(六个)gacutil.exe 完全不同(不包括 VS 文件夹中的),位于:

  1. c:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin
  2. c:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64
  3. c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
  4. c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64
  5. c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 工具
  6. c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64

问题是:

  1. x64版本在行为上有什么不同吗?
  2. 我应该更喜欢v7.0A其他版本v6.0A吗?
  3. 我应该使用NETFX 4.0 Tools.NET 4.0 程序集的版本,而其余的使用“标准”版本吗?

或者,如果有一些关于这个主题的一般类型的文章,我将不胜感激。

更新1。关于汉斯帕桑特的回答

  1. gacutil.exe 是“构建、部署和配置工具 (.NET Framework)”的 .NET Framework 工具的一部分,因为现在已经过时 (!) shfusion.dll
  2. 确实 v6.0A 是从 VS2008 安装的,可以忽略(1、2);
  3. 64 位解释理论听起来也很合理。我还认为很可能有一个IA64 版本的 gacutil.exe,所以它就像“每个平台的工具副本”,只是因为 WoW64,x86 版本在任何地方都可以正常运行。列表中减去 2 个 gacutil 版本(4、6);
  4. 关于使用哪个版本的部分似乎是错误的。V4.0 gacutil.exe 根据其目标 CLR 检测和放置程序集,并且适用于 .NET 4.0 和更早版本的程序集。那么问题来了,为什么要离开V2.0 gacutil.exe呢?我的猜测是出于在环境中部署的目的。NET4.0 不可用。
  5. 使用或不使用 GAC 不是问题。所以我留下最后一段没有评论。

更新 2。

因此,在我看来,对于 Windows x86 和 x64 上的所有 GAC 操作,似乎可以安全地使用数字 3(然后 .NET4.0 不可用)或数字 5。问题的答案是:

  1. 不。
  2. 没关系,但使用较新的版本似乎更合乎逻辑。
  3. 不,您始终NETFX 4.0 Tools可以对所有 GAC 操作使用版本(如果 .NET4.0 可用)。