private void AddAddinsForPath(string product, RegistryKey startignKey, string path) { if (!startignKey.Exists(path)) { return; } var addinsKey = startignKey.OpenSubKey(path); foreach (var subKeyName in addinsKey.GetSubKeyNames()) { var subKey = addinsKey.OpenSubKey(subKeyName); var manifest = subKey.GetValue("Manifest"); if (manifest == null) { continue; } var manifestFile = manifest .ToString() .Replace("|vstolocal", string.Empty) .Replace("file:///", string.Empty); var addin = new Addin { AddinName = subKey.GetValue("FriendlyName").ToString(), Description = subKey.GetValue("Description").ToString(), RegistryKey = subKey, Product = product, Manifest = manifestFile, ManifestExists = File.Exists(manifestFile) }; _addins.Add(addin); } }