.net GACUtil与手动编辑C:\Windows\assembly

.net GACUtil与手动编辑C:\Windows\assembly,.net,gac,gacutil,.net,Gac,Gacutil,我们在项目中使用GAC,在开发过程中,我们通常必须先注销以前版本的DLL,然后再注册新版本。虽然我们可以使用GACutil.exe来执行此操作,但我们也可以将DLL拖放到C:\Windows\assembly以注册它们,然后右键单击+卸载以注销它们(或者有时我们在命令提示符下使用“del”和DLL名称来执行此操作) 我的问题是:是否有任何迹象表明我们的做法不可取?它是否等同于“GACUtil-i”和“GACUtil-u”,或者它会导致问题 谢谢,此功能由自定义shell扩展shfusion.dl

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

我的问题是:是否有任何迹象表明我们的做法不可取?它是否等同于“GACUtil-i”和“GACUtil-u”,或者它会导致问题


谢谢,

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

请注意,这将不再适用于.NET 4,它在不同的文件夹(c:\windows\microsoft.NET\assembly)中使用GAC,并且该文件夹没有相同类型的外壳扩展名,您可以看到GAC文件夹的原始内容。别弄乱那个


一般来说,你不应该在你的开发机器上那样使用GAC。首先,使用它的目的是允许程序集的多个版本共存,因此不断地取消/注册没有意义。另一方面,在开发过程中不断更改[AssemblyVersion]没有多大意义。强烈支持IDE支持的复制本地功能。将其放入GAC在用户的机器上可能很有用。我认为,这也是微软不再支持shell扩展的原因。它经常被使用:)

我不认为删除是个大问题。但是安装时,您需要获得正确的目录名,等等@leppie是的,但使用拖放似乎可以自动完成所有操作。