加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 枚举GAC中的程序集

发布时间:2020-12-15 18:27:24 所属栏目:百科 来源:网络整理
导读:如何在C#中枚举GAC中的所有可用程序集? 实际上我面临着一个愚蠢代码的问题 – 在项目中引用并使用了名为Telerik.Web.UI.dll的程序集 – 这个特定的DLL不存在于BIN文件夹中.应用程序在服务器上工作正常 – 但是在我的机器上,显然编译器出现错误. Ex-Develope
如何在C#中枚举GAC中的所有可用程序集?

实际上我面临着一个愚蠢代码的问题 – 在项目中引用并使用了名为Telerik.Web.UI.dll的程序集 – 这个特定的DLL不存在于BIN文件夹中.应用程序在服务器上工作正常 – 但是在我的机器上,显然编译器出现错误. Ex-Developer坚持认为它不在服务器上的GAC中,而是“它是什么”.现在我需要检查这个DLL是否在GAC中注册.

帮助将不胜感激

美好的一天;

解决方法

如果您对服务器的访问有限,那么这可能会起作用:
// List of all the different types of GAC folders for both 32bit and 64bit
// environments.
List<string> gacFolders = new List<string>() { 
    "GAC","GAC_32","GAC_64","GAC_MSIL","NativeImages_v2.0.50727_32","NativeImages_v2.0.50727_64","NativeImages_v4.0.30319_32","NativeImages_v4.0.30319_64"
};

foreach (string folder in gacFolders)
{
    string path = Path.Combine(
       Environment.ExpandEnvironmentVariables(@"%systemroot%assembly"),folder);

    if(Directory.Exists(path))
    {
        Response.Write("<hr/>" + folder + "<hr/>");

        string[] assemblyFolders = Directory.GetDirectories(path);
        foreach (string assemblyFolder in assemblyFolders)
        {
            Response.Write(assemblyFolder + "<br/>");
        }
    }
}

它基本上列举了原始的GAC文件夹.它适用于DiscountASP共享托管,因此可能适用于您的托管环境.

可以通过在每个程序集的文件夹中更深入地列出版本号和公钥令牌来进行修饰.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读