var oldRoslynAssemblies='${new[] { "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis", "System.Collections.Immutable", "System.Reflection.Metadata.Ecma335", "System.Reflection.Metadata" }}' var roslynAssemblies='${new[] { "Microsoft.CodeAnalysis.CSharp", "Microsoft.CodeAnalysis", "System.Collections.Immutable", "System.Reflection.Metadata" }}' var programFilesX86='${Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)}' var gacutil='${Path.Combine(programFilesX86, "Microsoft SDKs", "Windows", "v8.1A", "bin", "NETFX 4.5.1 Tools", "gacutil.exe")}' var windir='${Environment.GetFolderPath(Environment.SpecialFolder.Windows)}' var ngen='${Path.Combine(windir, "Microsoft.NET", "Framework", "v4.0.30319", "ngen.exe")}' var tempRoslynPackagesDir='bin\_roslyn' var tempRoslynDir='bin\_roslyn\all' exec program='${gacutil}' commandline='/u ${p}' each='var p in oldRoslynAssemblies' nuget-install package='Microsoft.CodeAnalysis.CSharp' outputDir='${tempRoslynPackagesDir}' extra='-pre -ExcludeVersion -nocache' @{ var binaries = Files.Include(Path.Combine(tempRoslynPackagesDir, "**", "*net45*", "*.dll")); Directory.CreateDirectory(tempRoslynDir); foreach(var file in binaries) { File.Copy(file, Path.Combine(tempRoslynDir, Path.GetFileName(file)), true); } } exec program='${ngen}' commandline='install ${tempRoslynDir}\${p}.dll' each='var p in roslynAssemblies' exec program='${gacutil}' commandline='/i ${tempRoslynDir}\${p}.dll' each='var p in roslynAssemblies' directory delete='${tempRoslynPackagesDir}'