Csharp/C#教程:如何使用C#获取GAC的位置?分享


如何使用C#获取GAC的位置?

如何使用C#获取GAC 目录的位置?

在Windows注册表中存在一个条目?

UPDATE

我需要该位置,因为,我想枚举和分析位于GAC中的程序集。

再见。

如果你想枚举GAC中的东西(例如编写系统管理工具),你最好的选择就是使用fusion.dll,尽管这需要一些互操作代码。

链接到Microsoft以获取Fusion.DLL文档

它位于%windir% Assembly文件夹中。

就代码示例而言,Dan首先得到了答案。

是不是总是%windir%assembly

编辑:

 c:Windows>dir windowsassembly Volume in drive C has no label. Volume Serial Number is C8BC-2EBD Directory of c:windowsassembly 08/14/2009 03:06 AM  GAC 07/28/2009 03:07 AM  GAC_32 09/08/2009 10:57 PM  GAC_MSIL 08/15/2009 07:35 PM  NativeImages_v2.0.50727_32 09/08/2009 10:57 PM  temp 09/08/2009 09:47 PM  tmp 0 File(s) 0 bytes 6 Dir(s) 4,560,822,272 bytes free 

手动访问GAC的绝对正当理由就像文件夹一样。 当然,人们应该意识到操纵那里的风险。 但我会说,只读访问是相当不错的。

除了提到的%windir% assembly之外,Nir Sofer可能已经为您完成了这项工作。 他写过GACView 。

嘿,它甚至有一个function来禁用资源管理器中的特殊视图:在资源管理器中选项/禁用程序集查看器。 然后该文件夹将显示为普通文件夹。 虽然这在Windows XP上运行良好,但它不适用于Windows 7 64 Bit,因为它将其设置在32位版本的注册表中。 要在Windows 7 64位上禁用程序集查看器,请启动Regedit(64位),转到

 HKEY_LOCAL_MACHINESOFTWAREMicrosoftFusion 

并添加一个名为DisableCacheViewer的新DWORD值为1。

要独立于目录(可能更改),您可以通过Fusion注册表项枚举程序集:

 HKEY_LOCAL_MACHINESOFTWAREMicrosoftFusionGACChangeNotificationDefault 

我想这就是GACView内部工作的方式。 但它仍然不会枚举%windir% Microsoft.NET assembly中的.NET 4程序集。

支持.NET 4的工具是GACBrowser ,但它显示的信息较少。

让运行时管理它的程序集并相信它们会在那里。 如果你需要安装一些使用gacutil。 如果你需要卸载一些东西使用gacutil。 如果需要访问程序集,请在项目中添加对它的引用。 如果您需要在其他人的机器上与GAC进行交互,请执行@Dan所说的并使用MSI和朋友。

否则请勿触摸GAC

上述就是C#学习教程:如何使用C#获取GAC的位置?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/997358.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐