private static void RefreshAssemblies(ILog log)
{
var fileSystem = new FileSystem();
var packagesFolder = Path.Combine(fileSystem.CurrentDirectory, "packages");
if(fileSystem.DirectoryExists(packagesFolder))
{
// Delete any blacklisted packages to avoid various issues with PackageAssemblyResolver
// https://github.com/scriptcs/scriptcs/issues/511
foreach (var packagePath in
_blacklistedPackages.SelectMany(packageName => Directory.GetDirectories(packagesFolder)
.Where(d => new DirectoryInfo(d).Name.StartsWith(packageName, StringComparison.InvariantCultureIgnoreCase)),
(packageName, packagePath) => new {packageName, packagePath})
.Where(t => fileSystem.DirectoryExists(t.packagePath))
.Select(t => @t.packagePath))
{
fileSystem.DeleteDirectory(packagePath);
}
}
var par = new PackageAssemblyResolver(fileSystem, new PackageContainer(fileSystem, log), log);
_assemblies = par.GetAssemblyNames(fileSystem.CurrentDirectory).ToList();
// Add the assemblies in the current directory
_assemblies.AddRange(Directory.GetFiles(fileSystem.CurrentDirectory, "*.dll")
.Where(a => new AssemblyUtility().IsManagedAssembly(a)));
}