static void GetAllAssemblies(Assembly start)
        {
            AllAssemblies.Add(start.FullName, start);
            foreach (var item in start.GetReferencedAssemblies())
            {
                try
                {
                    if (AllAssemblies.ContainsKey(item.FullName))
                    {
                        continue;
                    }

                    var ass = Assembly.Load(item);
                    GetAllAssemblies(ass);
                }
                catch (Exception)
                {
                    //TODO:log
                }
            }
        }