gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 12:41:34 26 4
gpt4 key购买 nike

因此,在 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. 与其他 v6.0A 相比,我应该更喜欢 v7.0A 版本吗?
  3. 我应该为 .NET 4.0 程序集使用 NETFX 4.0 Tools 版本,为其余程序集使用“标准”版本吗?

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

更新 1. 关于 Hans Passant's answer :

  1. gacutil.exe 是一个 .NET Framework 工具,属于“构建、部署和配置工具 (.NET Framework)”,现在已过时 (!) shfusion.dll是;
  2. 确实v6.0A是从VS2008安装的,可以忽略(1, 2);
  3. 64 位解释理论听起来也很有道理。我还假设很可能有一个 IA64 version of gacutil.exe ,所以它就像是“每个平台的工具副本”,恰好让x86版本因为WoW64到处运行良好。从列表 (4, 6) 中减去 2 gacutil 版本;
  4. 关于使用哪个版本的部分似乎是错误的。 V4.0 gacutil.exe 根据其 objective-c LR 检测和放置程序集,并且适用于 .NET 4.0 和更早版本的程序集。那么问题来了,为什么要离开V2.0 gacutil.exe呢?我的猜测是为了在那里的环境中部署。NET4.0 不可用。
  5. 使用或不使用 GAC,不是问题所在。所以我对最后一段不加评论。

更新 2.

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

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

最佳答案

Gacutil.exe 是 Windows SDK 工具,而不是 .NET 框架工具。您的机器上有两个版本的 SDK。您从 VS2008 安装获得 6.0A,从 VS2010 安装获得 7.0A。您还有一个 64 位操作系统,因此您也获得了 64 位工具。这对 gacutil.exe 来说无关紧要,不确定为什么要单独包含它。可能是为了让 Visual Studio 命令提示符正常工作,请注意它有单独的 32 位和 64 位版本。这对 C++ 项目很重要。 VS2010 允许同时定位 CLR 版本 4 和 CLR 版本 2,因此总共有 6 个版本。

重要的是您的机器上有两个 GAC。 .NET 4 程序集的 GAC 存储在 c:\windows\microsoft.net\assembly 中。对于早期版本,它存储在 c:\windows\assembly 中。您必须使用正确版本的 gacutil.exe 才能将程序集放入正确的 GAC 中。对于面向 .NET 4 的程序集,您必须使用 Bin\NETFX 4.0 工具中的程序集。对于较早的那些,您必须使用 Bin 中的那个。

最好不要使用它,程序集应该在开发机器上设置 Copy Local 属性。 GAC 是一个部署细节,当您的 GAC 有一个您的用户的 GAC 没有的程序集时,您就会遇到麻烦。

关于.net - 我应该使用什么 gacutil.exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com