public static IEnumerable <ServerEntry> UpdateServerStatus(string stlViewerThumbnail)
        {
            if (!string.IsNullOrEmpty(stlViewerThumbnail))
            {
                if (!File.Exists(stlViewerThumbnail))
                {
                    return(null);
                }

                IEnumerable <ServerEntry> serverEntries = ServerManagerApi.LoadServers(stlViewerThumbnail);

                return(serverEntries);
            }
            return(null);
        }
        public static void InstallServer(string thumbnailFilename, bool osIs32Bit)
        {
            if (!string.IsNullOrEmpty(thumbnailFilename))
            {
                if (!File.Exists(thumbnailFilename))
                {
                    return;
                }

                IEnumerable <ServerEntry> serverEntries = ServerManagerApi.LoadServers(thumbnailFilename);

                foreach (ServerEntry serverEntry in serverEntries)
                {
                    SharpShell.ServerRegistration.ServerRegistrationManager.InstallServer(serverEntry.Server, osIs32Bit ? RegistrationType.OS32Bit : RegistrationType.OS64Bit, true);
                    SharpShell.ServerRegistration.ServerRegistrationManager.RegisterServer(serverEntry.Server, osIs32Bit ? RegistrationType.OS32Bit : RegistrationType.OS64Bit);
                }
            }

            ExplorerManager.RestartExplorer();
            // Tell explorer the file association has been changed
            SHChangeNotify(0x08000000, 0x0000, IntPtr.Zero, IntPtr.Zero);
        }