Ejemplo n.º 1
0
        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);
            }
        }