public TestsSetup() { ToolPathResolver.NuGetPackagesConfigFile = NukeBuild.RootDirectory / "tests" / "NMica.Tests" / "NMica.Tests.csproj"; // var userFolder = (AbsolutePath)Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var nugetCacheFolder = userFolder / ".nuget" / "packages"; return; // var nbgvDll = nugetCacheFolder / "nbgv" / "3.0.50" / "tools" / "netcoreapp2.1" / "any" / "nbgv.dll"; // // Console.WriteLine(ToolPathResolver.NuGetPackagesConfigFile); // Console.WriteLine(NukeBuild.RootDirectory); // if (File.Exists(nbgvDll)) // this is faster then letting tool resolver figure out where it lives // { // Console.WriteLine(nbgvDll); // // Environment.SetEnvironmentVariable("NERDBANKGITVERSIONING_EXE",nbgvDll); // } try { FileSystemTasks.DeleteDirectory(nugetCacheFolder / "NMica" / NMicaVersion.NuGetPackageVersion); } catch (UnauthorizedAccessException) { // something dumb is keeping locks on nuget cache between runs. this is a DIRTY hack to try to release any locks on that folder foreach (var process in Process.GetProcesses() .Where(x => x.ProcessName == "dotnet" && x.Id != Process.GetCurrentProcess().Id)) { process.Kill(true); } FileSystemTasks.DeleteDirectory(nugetCacheFolder / "NMica" / NMicaVersion.NuGetPackageVersion); } }
private static void SafeDeleteDirectory(AbsolutePath directory) { FileSystemTasks.EnsureCleanDirectory(directory); FileSystemTasks.DeleteDirectory(directory); }