private static void CheckDirectoryIsCrossgened(string pathToAssemblies) { Console.WriteLine($"Checking directory '{pathToAssemblies}' for crossgened assemblies"); var dlls = Directory.EnumerateFiles(pathToAssemblies, "*.dll", SearchOption.TopDirectoryOnly); var exes = Directory.EnumerateFiles(pathToAssemblies, "*.exe", SearchOption.TopDirectoryOnly); var assemblies = dlls.Concat(exes); assemblies.Count().Should().NotBe(0, $"No assemblies found at directory '{pathToAssemblies}'"); foreach (var assembly in assemblies) { using (var asmStream = File.OpenRead(assembly)) { using (var peReader = new PEReader(asmStream)) { if (peReader.HasMetadata) { peReader.IsCrossgened().Should().BeTrue($"Managed assembly '{assembly}' is not crossgened."); } } } } }