【问题标题】:GACUtil vs. manually editing C:\Windows\assemblyGACUtil 与手动编辑 C:\Windows\assembly
【发布时间】:2012-04-04 14:19:53
【问题描述】:

我们在项目中使用 GAC,在开发过程中,我们经常需要在注册新的 DLL 之前取消注册以前版本的 DLL。虽然我们可以使用 GACutil.exe 来执行此操作,但我们也可以将我们的 DLL 拖放到 C:\Windows\assembly 以注册它们,然后右键单击 + 卸载以取消注册它们(或者有时我们在命令提示符下使用"del" 和 DLL 的名称)。

我的问题:是否有任何迹象表明我们的行事方式不利于我们?是等价于“GACUtil -i”和“GACUtil -u”,还是会导致问题?

谢谢,

【问题讨论】:

  • 我不认为删除是个大问题。但是安装,你需要把目录名弄对等等。
  • @leppie 是的,但使用拖放似乎可以自动完成所有操作。

标签: .net gac gacutil


【解决方案1】:

此功能由自定义外壳扩展程序 shfusion.dll 提供。它使 GAC 扁平化并使其看起来像一个文件夹。并在您操作资源管理器窗口时自动为您取消/注册程序集。所以你可以这样做。

请注意,这将不再适用于 .NET 4,它使用不同文件夹 (c:\windows\microsoft.net\assembly) 中的 GAC,并且该文件夹没有相同类型的 shell 扩展,您查看 GAC 文件夹的原始内容。不要惹那个。

一般来说,您应该像那样在您的开发机器上使用 GAC。一方面,使用它的目的是允许程序集的多个版本共存,因此不断地取消/注册是没有意义的。另一方面,在开发过程中不断更改 [AssemblyVersion] 没有多大意义。强烈支持 IDE 支持的 Copy Local 功能。将它放在 GAC 中对您的用户计算机很有用。我认为,这也是微软不再支持 shell 扩展的原因。它被使用得太频繁了:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    相关资源
    最近更新 更多