aspnetcore/makefile.shade

51 lines
2.1 KiB
Plaintext

use namespace="System.IO"
use namespace="System.IO.Compression"
use namespace="System.Linq"
use-standard-lifecycle
k-standard-goals
#repack-x86 target='compile' if='Directory.Exists("src")'
@{
var buildDir= Path.Combine(Directory.GetCurrentDirectory(), "artifacts", "build");
var projectName = "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation";
var projectNupkg = Files
.Include(Path.Combine(buildDir, projectName + "*.nupkg"))
.Where(path => !path.EndsWith(".symbols.nupkg", StringComparison.OrdinalIgnoreCase))
.OrderByDescending(f => f) // On local builds multiple nupkgs are generated.
.First();
Log.Info("Repacking Nupkg: " + projectNupkg);
var extractToDirectory = projectNupkg + "-temp";
ZipFile.ExtractToDirectory(projectNupkg, extractToDirectory);
var runtimesDirectory = Path.Combine(extractToDirectory, "runtimes");
var win7x86Directory = Path.Combine(runtimesDirectory, "win7-x86", "lib", "net451");
var win7x64Directory = Path.Combine(runtimesDirectory, "win7-x64", "lib", "net451");
Directory.CreateDirectory(win7x86Directory);
Directory.CreateDirectory(win7x64Directory);
var net451LibDirectory = Path.Combine(extractToDirectory, "lib", "net451");
File.Move(
Path.Combine(net451LibDirectory, projectName + ".exe"),
Path.Combine(win7x64Directory, projectName + ".exe"));
File.Move(
Path.Combine(net451LibDirectory, projectName + "-x86.exe"),
Path.Combine(win7x86Directory, projectName + "-x86.exe"));
File.WriteAllBytes(Path.Combine(net451LibDirectory, "_._"), new byte[0]);
File.Delete(projectNupkg);
ZipFile.CreateFromDirectory(extractToDirectory, projectNupkg);
try
{
// Delete temporary directory we used to repack.
Directory.Delete(extractToDirectory, true);
}
catch
{
// Don't care if we couldn't delete the temp directory.
}
}