public static void GetPluginAssemblies([NotNull] this PluginHost pluginHost, [NotNull] IList <string> fileNames, bool includePackages, bool includeAssemblies, bool includeServerComponents)
        {
            Assert.ArgumentNotNull(pluginHost, nameof(pluginHost));
            Assert.ArgumentNotNull(fileNames, nameof(fileNames));

            AppHost.Files.CreateDirectory(AppHost.Plugins.PluginFolder);
            AppHost.Files.CreateDirectory(AppHost.Plugins.PackageFolder);

            pluginHost.CleanPluginFolder();
            pluginHost.CleanPackageFolder();

            if (includeAssemblies)
            {
                pluginHost.GetPluginAssembliesFromPluginFolder(fileNames);
                pluginHost.GetPluginAssembliesFromPluginFolders(fileNames);
                pluginHost.GetPluginAssembliesFromCommandLine(fileNames, includeServerComponents);

                RemoveUninstalledAssemblies(fileNames);
            }

            if (includePackages)
            {
                pluginHost.GetPluginAssembliesFromPackages(fileNames);
            }
        }