diff --git a/scripts/dotnet-cli-build/MsiTargets.cs b/scripts/dotnet-cli-build/MsiTargets.cs index aa50fcac8..f4f82f695 100644 --- a/scripts/dotnet-cli-build/MsiTargets.cs +++ b/scripts/dotnet-cli-build/MsiTargets.cs @@ -112,9 +112,8 @@ namespace Microsoft.DotNet.Cli.Build if (Directory.Exists(wixObjRoot)) { - Directory.Delete(wixObjRoot, true); + Utils.DeleteDirectory(wixObjRoot); } - Directory.CreateDirectory(wixObjRoot); Cmd("powershell", "-NoProfile", "-NoLogo", @@ -137,9 +136,8 @@ namespace Microsoft.DotNet.Cli.Build if (Directory.Exists(wixObjRoot)) { - Directory.Delete(wixObjRoot, true); + Utils.DeleteDirectory(wixObjRoot); } - Directory.CreateDirectory(wixObjRoot); Cmd("powershell", "-NoProfile", "-NoLogo", diff --git a/scripts/dotnet-cli-build/PackageTargets.cs b/scripts/dotnet-cli-build/PackageTargets.cs index 4b54013cf..2dc28fd54 100644 --- a/scripts/dotnet-cli-build/PackageTargets.cs +++ b/scripts/dotnet-cli-build/PackageTargets.cs @@ -57,16 +57,8 @@ namespace Microsoft.DotNet.Cli.Build if (Directory.Exists(cliSdkRoot)) { - string[] files = Directory.GetFiles(cliSdkRoot, "*", SearchOption.AllDirectories); - foreach (string file in files) - { - File.SetAttributes(file, FileAttributes.Normal); - File.Delete(file); - } - - Directory.Delete(cliSdkRoot, true); + Utils.DeleteDirectory(cliSdkRoot); } - Directory.CreateDirectory(cliSdk); var binPath = Path.Combine(Dirs.Stage2, "bin"); diff --git a/scripts/dotnet-cli-build/SharedFrameworkTargets.cs b/scripts/dotnet-cli-build/SharedFrameworkTargets.cs index 2892bc2f2..93ef44ec2 100644 --- a/scripts/dotnet-cli-build/SharedFrameworkTargets.cs +++ b/scripts/dotnet-cli-build/SharedFrameworkTargets.cs @@ -37,7 +37,7 @@ namespace Microsoft.DotNet.Cli.Build if (Directory.Exists(SharedFrameworkPublishRoot)) { - Directory.Delete(SharedFrameworkPublishRoot, true); + Utils.DeleteDirectory(SharedFrameworkPublishRoot); } // We publish to a sub folder of the PublishRoot so tools like heat and zip can generate folder structures easier. @@ -113,11 +113,11 @@ namespace Microsoft.DotNet.Cli.Build public static BuildTargetResult PublishSharedHost(BuildTargetContext c) { string SharedHostPublishRoot = Path.Combine(Dirs.Output, "obj", "sharedhost"); + if (Directory.Exists(SharedHostPublishRoot)) { - Directory.Delete(SharedHostPublishRoot); + Utils.DeleteDirectory(SharedHostPublishRoot); } - Directory.CreateDirectory(SharedHostPublishRoot); // corehost will be renamed to dotnet at some point and then this can be removed. diff --git a/scripts/dotnet-cli-build/Utils/Utils.cs b/scripts/dotnet-cli-build/Utils/Utils.cs index 21512a08b..1f255e99e 100644 --- a/scripts/dotnet-cli-build/Utils/Utils.cs +++ b/scripts/dotnet-cli-build/Utils/Utils.cs @@ -85,5 +85,20 @@ namespace Microsoft.DotNet.Cli.Build b[x] = b[y]; b[y] = t; } + + public static void DeleteDirectory(string path) + { + if (Directory.Exists(path)) + { + string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); + foreach (string file in files) + { + File.SetAttributes(file, FileAttributes.Normal); + File.Delete(file); + } + + Directory.Delete(path, true); + } + } } }