c#com 참조 실제 구성 요소 주소 가져오기

2535 단어
1.guid로 획득
var clsid = new Guid("63EA2B90-C5A8-46F4-8A6E-2F2436C80003").ToString("B");
    var registryKey = Registry.ClassesRoot.OpenSubKey(@"Wow6432Node\CLSID\" + clsid + @"\InprocServer32");
    //32    64           ,        ,        。
    //HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{63EA2B90-C5A8-46F4-8A6E-2F2436C80003}\InprocServer32
    if (registryKey != null)
    {
        var classPath = registryKey.GetValue("CodeBase").ToString().Trim();
        if (!string.IsNullOrWhiteSpace(classPath))
        {
            var uri = new Uri(classPath);
            if (uri.IsFile)
            {
                Console.WriteLine(uri.LocalPath);
            }
        }
    }

2.gac에 등록된 구성 요소 주소를 얻으려면 위의 방법으로 하면 안 됩니다.
var ass = Assembly.LoadFrom(@"C:\Users\Administrator\Desktop\test\FirstEliteTools.dll"); //  guid          
MessageBox.Show(ass.CodeBase);

 
전재 대상:https://www.cnblogs.com/nanfei/p/10218353.html

좋은 웹페이지 즐겨찾기