diff --git a/src/lib-csharp/UpdateManager.cs b/src/lib-csharp/UpdateManager.cs
index 4f57a07b..7e1e7f76 100644
--- a/src/lib-csharp/UpdateManager.cs
+++ b/src/lib-csharp/UpdateManager.cs
@@ -1,11 +1,12 @@
using System;
+using System.Collections.Generic;
using System.ComponentModel;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using NuGet.Versioning;
-using Velopack.Compression;
using Velopack.Exceptions;
using Velopack.Locators;
using Velopack.Logging;
@@ -231,8 +232,6 @@ namespace Velopack
EnsureInstalled();
using var _mut = await AcquireUpdateLock().ConfigureAwait(false);
- var appTempDir = Locator.AppTempDir!;
-
var completeFile = Locator.GetLocalPackagePath(targetRelease);
var incompleteFile = completeFile + ".partial";
@@ -262,33 +261,9 @@ namespace Velopack
$"There are too many delta's ({deltasCount} > 10) or the sum of their size ({deltasSize} > {targetRelease.Size}) is too large. " +
$"Only full update will be available.");
} else {
- using var _1 = TempUtil.GetTempDirectory(out var deltaStagingDir, appTempDir);
- string basePackagePath = Locator.GetLocalPackagePath(updates.BaseRelease);
- if (!File.Exists(basePackagePath))
- throw new Exception($"Unable to find base package {basePackagePath} for delta update.");
- EasyZip.ExtractZipToDirectory(Log, basePackagePath, deltaStagingDir);
-
- reportProgress(10);
- await DownloadAndApplyDeltaUpdates(
- deltaStagingDir,
- updates,
- x => reportProgress(CoreUtil.CalculateProgress(x, 10, 80)),
- cancelToken)
- .ConfigureAwait(false);
- reportProgress(80);
-
- Log.Info("Delta updates completed, creating final update package.");
- File.Delete(incompleteFile);
- await EasyZip.CreateZipFromDirectoryAsync(
- Log,
- incompleteFile,
- deltaStagingDir,
- x => reportProgress(CoreUtil.CalculateProgress(x, 80, 100)),
- cancelToken: cancelToken).ConfigureAwait(false);
- File.Delete(completeFile);
- File.Move(incompleteFile, completeFile);
- Log.Info("Delta release preparations complete. Package moved to: " + completeFile);
- reportProgress(100);
+ await DownloadAndApplyDeltaUpdates(updates, incompleteFile, progress, cancelToken).ConfigureAwait(false);
+ IoUtil.MoveFile(incompleteFile, completeFile, true);
+ Log.Info("Delta update download complete. Package moved to: " + completeFile);
return; // success!
}
}
@@ -336,19 +311,17 @@ namespace Velopack
/// Given a folder containing the extracted base package, and a list of delta updates, downloads and applies the
/// delta updates to the base package.
///
- /// A folder containing the application files to apply the delta's to.
/// An update object containing one or more delta's
+ /// The reconstructed full update after all delta's are applied
/// A callback reporting process of delta application progress (from 0-100).
/// A token to use to cancel the request.
- protected virtual async Task DownloadAndApplyDeltaUpdates(string extractedBasePackage, UpdateInfo updates, Action progress,
+ protected virtual async Task DownloadAndApplyDeltaUpdates(UpdateInfo updates, string targetFile, Action progress,
CancellationToken cancelToken)
{
var releasesToDownload = updates.DeltasToTarget.OrderBy(d => d.Version).ToArray();
-
- var appTempDir = Locator.AppTempDir!;
var updateExe = Locator.UpdateExePath!;
- // downloading accounts for 0%-50% of progress
+ // downloading accounts for 0%-70% of progress
double current = 0;
double toIncrement = 100.0 / releasesToDownload.Count();
await releasesToDownload.ForEachAsync(
@@ -365,7 +338,7 @@ namespace Velopack
current -= component;
component = toIncrement / 100.0 * p;
var progressOfStep = (int) Math.Round(current += component);
- progress(CoreUtil.CalculateProgress(progressOfStep, 0, 50));
+ progress(CoreUtil.CalculateProgress(progressOfStep, 0, 70));
}
},
cancelToken).ConfigureAwait(false);
@@ -374,23 +347,34 @@ namespace Velopack
Log.Debug($"Download complete for delta version {x.Version}");
}).ConfigureAwait(false);
- Log.Info("All delta packages downloaded and verified, applying them to the base now. The delta staging dir is: " + extractedBasePackage);
+ Log.Info("All delta packages downloaded and verified, applying them to the base now.");
- // applying deltas accounts for 50%-100% of progress
- double progressStepSize = 100d / releasesToDownload.Length;
- var builder = new DeltaUpdateExe(Log, appTempDir, updateExe);
- for (var i = 0; i < releasesToDownload.Length; i++) {
- cancelToken.ThrowIfCancellationRequested();
- var rel = releasesToDownload[i];
- double baseProgress = i * progressStepSize;
- var packageFile = Locator.GetLocalPackagePath(rel);
- builder.ApplyDeltaPackageFast(
- extractedBasePackage,
- packageFile,
- x => {
- var progressOfStep = (int) (baseProgress + (progressStepSize * (x / 100d)));
- progress(CoreUtil.CalculateProgress(progressOfStep, 50, 100));
- });
+ // applying deltas accounts for 70%-100% of progress
+ var baseFile = Locator.GetLocalPackagePath(updates.BaseRelease!);
+ var args = new List {
+ "patch",
+ "--old",
+ baseFile,
+ "--output",
+ targetFile,
+ };
+
+ foreach (var x in releasesToDownload) {
+ args.Add("--delta");
+ args.Add(Locator.GetLocalPackagePath(x));
+ }
+
+ var psi = new ProcessStartInfo(updateExe);
+ psi.AppendArgumentListSafe(args, out var _);
+ psi.CreateNoWindow = true;
+ var p = psi.StartRedirectOutputToILogger(Log, VelopackLogLevel.Debug);
+ if (!p.WaitForExit((int)TimeSpan.FromMinutes(5).TotalMilliseconds)) {
+ p.Kill();
+ throw new TimeoutException("patch process timed out (5min).");
+ }
+
+ if (p.ExitCode != 0) {
+ throw new Exception($"patch process failed with exit code {p.ExitCode}.");
}
progress(100);
diff --git a/src/lib-csharp/Util/EasyZip.cs b/src/lib-csharp/Util/EasyZip.cs
index 26ffc5f7..c95c54ff 100644
--- a/src/lib-csharp/Util/EasyZip.cs
+++ b/src/lib-csharp/Util/EasyZip.cs
@@ -9,7 +9,7 @@ using System.Threading.Tasks;
using Velopack.Logging;
using Velopack.Util;
-namespace Velopack.Compression
+namespace Velopack.Util
{
internal static class EasyZip
{
diff --git a/src/vpk/Velopack.Build/TaskOptionsMapper.cs b/src/vpk/Velopack.Build/TaskOptionsMapper.cs
index e3164e5a..07e12971 100644
--- a/src/vpk/Velopack.Build/TaskOptionsMapper.cs
+++ b/src/vpk/Velopack.Build/TaskOptionsMapper.cs
@@ -2,6 +2,7 @@
using System.IO;
using Riok.Mapperly.Abstractions;
using Velopack.Packaging;
+using Velopack.Packaging.Compression;
using Velopack.Packaging.Unix.Commands;
using Velopack.Packaging.Windows.Commands;
diff --git a/src/vpk/Velopack.Flow/VelopackFlowServiceClient.cs b/src/vpk/Velopack.Flow/VelopackFlowServiceClient.cs
index 483d7a41..a8338602 100644
--- a/src/vpk/Velopack.Flow/VelopackFlowServiceClient.cs
+++ b/src/vpk/Velopack.Flow/VelopackFlowServiceClient.cs
@@ -13,6 +13,7 @@ using Velopack.NuGet;
using Velopack.Packaging;
using Velopack.Util;
using System.Net;
+using Velopack.Packaging.Compression;
#if !NET6_0_OR_GREATER
using System.Net.Http;
diff --git a/src/vpk/Velopack.Packaging.Unix/AppImageTool.cs b/src/vpk/Velopack.Packaging.Unix/AppImageTool.cs
index f0efdf24..e4a97f69 100644
--- a/src/vpk/Velopack.Packaging.Unix/AppImageTool.cs
+++ b/src/vpk/Velopack.Packaging.Unix/AppImageTool.cs
@@ -1,6 +1,5 @@
using ICSharpCode.SharpZipLib.Tar;
using Microsoft.Extensions.Logging;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Util;
diff --git a/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackCommandRunner.cs b/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackCommandRunner.cs
index d0cb3bba..934ded32 100644
--- a/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackCommandRunner.cs
+++ b/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackCommandRunner.cs
@@ -2,6 +2,7 @@
using Microsoft.Extensions.Logging;
using Velopack.Core;
using Velopack.Core.Abstractions;
+using Velopack.Packaging.Compression;
using Velopack.Util;
namespace Velopack.Packaging.Unix.Commands;
diff --git a/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackOptions.cs b/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackOptions.cs
index 19c0fa45..ec0779c4 100644
--- a/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackOptions.cs
+++ b/src/vpk/Velopack.Packaging.Unix/Commands/LinuxPackOptions.cs
@@ -1,4 +1,5 @@
using Velopack.Packaging.Abstractions;
+using Velopack.Packaging.Compression;
namespace Velopack.Packaging.Unix.Commands;
diff --git a/src/vpk/Velopack.Packaging.Unix/Commands/OsxPackOptions.cs b/src/vpk/Velopack.Packaging.Unix/Commands/OsxPackOptions.cs
index 9e9c41db..51010184 100644
--- a/src/vpk/Velopack.Packaging.Unix/Commands/OsxPackOptions.cs
+++ b/src/vpk/Velopack.Packaging.Unix/Commands/OsxPackOptions.cs
@@ -1,4 +1,5 @@
using Velopack.Packaging.Abstractions;
+using Velopack.Packaging.Compression;
namespace Velopack.Packaging.Unix.Commands;
diff --git a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs
index 1893370c..997e441e 100644
--- a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs
+++ b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsPackCommandRunner.cs
@@ -5,7 +5,6 @@ using System.Text.RegularExpressions;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using NuGet.Versioning;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Core.Abstractions;
using Velopack.NuGet;
diff --git a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs
index 747953a1..97f537b8 100644
--- a/src/vpk/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs
+++ b/src/vpk/Velopack.Packaging.Windows/Commands/WindowsReleasifyOptions.cs
@@ -1,4 +1,6 @@
-namespace Velopack.Packaging.Windows.Commands;
+using Velopack.Packaging.Compression;
+
+namespace Velopack.Packaging.Windows.Commands;
public class WindowsReleasifyOptions : WindowsSigningOptions
{
diff --git a/src/vpk/Velopack.Packaging/Abstractions/IPackOptions.cs b/src/vpk/Velopack.Packaging/Abstractions/IPackOptions.cs
index 9b2fb687..9656b261 100644
--- a/src/vpk/Velopack.Packaging/Abstractions/IPackOptions.cs
+++ b/src/vpk/Velopack.Packaging/Abstractions/IPackOptions.cs
@@ -1,4 +1,6 @@
-namespace Velopack.Packaging.Abstractions;
+using Velopack.Packaging.Compression;
+
+namespace Velopack.Packaging.Abstractions;
public interface IPackOptions : INugetPackCommand, IPlatformOptions
{
diff --git a/src/vpk/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs b/src/vpk/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs
index cf7b93b6..1f45eff4 100644
--- a/src/vpk/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs
+++ b/src/vpk/Velopack.Packaging/Commands/DeltaGenCommandRunner.cs
@@ -1,5 +1,6 @@
using Microsoft.Extensions.Logging;
using Velopack.Core.Abstractions;
+using Velopack.Packaging.Compression;
namespace Velopack.Packaging.Commands;
diff --git a/src/vpk/Velopack.Packaging/Commands/DeltaGenOptions.cs b/src/vpk/Velopack.Packaging/Commands/DeltaGenOptions.cs
index 92f00a2d..869aebf1 100644
--- a/src/vpk/Velopack.Packaging/Commands/DeltaGenOptions.cs
+++ b/src/vpk/Velopack.Packaging/Commands/DeltaGenOptions.cs
@@ -1,4 +1,5 @@
using Velopack.Core;
+using Velopack.Packaging.Compression;
namespace Velopack.Packaging.Commands;
diff --git a/src/vpk/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs b/src/vpk/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs
index 11bc3fad..02c1b835 100644
--- a/src/vpk/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs
+++ b/src/vpk/Velopack.Packaging/Commands/DeltaPatchCommandRunner.cs
@@ -1,7 +1,7 @@
using Microsoft.Extensions.Logging;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Core.Abstractions;
+using Velopack.Packaging.Compression;
using Velopack.Util;
namespace Velopack.Packaging.Commands;
diff --git a/src/vpk/Velopack.Packaging/Compression/BZip2Stream.cs b/src/vpk/Velopack.Packaging/Compression/BZip2Stream.cs
index e00bdebc..b0489be7 100644
--- a/src/vpk/Velopack.Packaging/Compression/BZip2Stream.cs
+++ b/src/vpk/Velopack.Packaging/Compression/BZip2Stream.cs
@@ -1,10 +1,8 @@
#nullable disable
-using System;
using System.Diagnostics.CodeAnalysis;
-using System.IO;
using System.IO.Compression;
-namespace Velopack.Compression
+namespace Velopack.Packaging.Compression
{
[ExcludeFromCodeCoverage]
internal sealed class BZip2Stream : Stream
diff --git a/src/vpk/Velopack.Packaging/Compression/BinaryPatchUtility.cs b/src/vpk/Velopack.Packaging/Compression/BinaryPatchUtility.cs
index 0df5d978..84999bef 100644
--- a/src/vpk/Velopack.Packaging/Compression/BinaryPatchUtility.cs
+++ b/src/vpk/Velopack.Packaging/Compression/BinaryPatchUtility.cs
@@ -1,13 +1,10 @@
#nullable disable
-using System;
using System.Diagnostics.CodeAnalysis;
-using System.IO;
using System.IO.Compression;
-using System.Threading;
// Adapted from https://github.com/LogosBible/bsdiff.net/blob/master/src/bsdiff/BinaryPatchUtility.cs
-namespace Velopack.Compression
+namespace Velopack.Packaging.Compression
{
/*
The original bsdiff.c source code (http://www.daemonology.net/bsdiff/) is
diff --git a/src/vpk/Velopack.Packaging/Compression/DeltaEmbedded.cs b/src/vpk/Velopack.Packaging/Compression/DeltaEmbedded.cs
index 86d871b0..83821e4b 100644
--- a/src/vpk/Velopack.Packaging/Compression/DeltaEmbedded.cs
+++ b/src/vpk/Velopack.Packaging/Compression/DeltaEmbedded.cs
@@ -1,8 +1,7 @@
using Microsoft.Extensions.Logging;
-using Velopack.Compression;
using Velopack.Core;
-namespace Velopack.Packaging;
+namespace Velopack.Packaging.Compression;
public class DeltaEmbedded
{
diff --git a/src/vpk/Velopack.Packaging/Compression/DeltaMode.cs b/src/vpk/Velopack.Packaging/Compression/DeltaMode.cs
index 78d4877b..7d0e0bb9 100644
--- a/src/vpk/Velopack.Packaging/Compression/DeltaMode.cs
+++ b/src/vpk/Velopack.Packaging/Compression/DeltaMode.cs
@@ -1,4 +1,4 @@
-namespace Velopack.Packaging;
+namespace Velopack.Packaging.Compression;
public enum DeltaMode
{
diff --git a/src/vpk/Velopack.Packaging/Compression/DeltaPackage.cs b/src/vpk/Velopack.Packaging/Compression/DeltaPackage.cs
index 8083127c..733e0b5a 100644
--- a/src/vpk/Velopack.Packaging/Compression/DeltaPackage.cs
+++ b/src/vpk/Velopack.Packaging/Compression/DeltaPackage.cs
@@ -1,14 +1,11 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
+#nullable enable
using System.Text;
using System.Text.RegularExpressions;
using Velopack.Exceptions;
using Velopack.Logging;
using Velopack.Util;
-namespace Velopack.Compression
+namespace Velopack.Packaging.Compression
{
internal abstract class DeltaPackage
{
diff --git a/src/vpk/Velopack.Packaging/Compression/DeltaPackageBuilder.cs b/src/vpk/Velopack.Packaging/Compression/DeltaPackageBuilder.cs
index 8a8fb877..28ab8f80 100644
--- a/src/vpk/Velopack.Packaging/Compression/DeltaPackageBuilder.cs
+++ b/src/vpk/Velopack.Packaging/Compression/DeltaPackageBuilder.cs
@@ -1,12 +1,11 @@
using System.IO.MemoryMappedFiles;
using System.Text;
using Microsoft.Extensions.Logging;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Packaging.Exceptions;
using Velopack.Util;
-namespace Velopack.Packaging;
+namespace Velopack.Packaging.Compression;
public class DeltaPackageBuilder
{
diff --git a/src/vpk/Velopack.Packaging/Compression/DeltaUpdateExe.cs b/src/vpk/Velopack.Packaging/Compression/DeltaUpdateExe.cs
index 1d198367..d8597afd 100644
--- a/src/vpk/Velopack.Packaging/Compression/DeltaUpdateExe.cs
+++ b/src/vpk/Velopack.Packaging/Compression/DeltaUpdateExe.cs
@@ -1,9 +1,8 @@
-using System;
-using System.Diagnostics;
+using System.Diagnostics;
using Velopack.Logging;
using Velopack.Util;
-namespace Velopack.Compression
+namespace Velopack.Packaging.Compression
{
internal class DeltaUpdateExe : DeltaPackage
{
diff --git a/src/vpk/Velopack.Packaging/Compression/MsDeltaCompression.cs b/src/vpk/Velopack.Packaging/Compression/MsDeltaCompression.cs
index 29a3fdc0..4aee72ae 100644
--- a/src/vpk/Velopack.Packaging/Compression/MsDeltaCompression.cs
+++ b/src/vpk/Velopack.Packaging/Compression/MsDeltaCompression.cs
@@ -1,10 +1,10 @@
-using System;
+#nullable enable
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
-namespace Velopack.Compression
+namespace Velopack.Packaging.Compression
{
[ExcludeFromCodeCoverage]
[SupportedOSPlatform("windows")]
diff --git a/src/vpk/Velopack.Packaging/PackageBuilder.cs b/src/vpk/Velopack.Packaging/PackageBuilder.cs
index c5120f64..42607ef2 100644
--- a/src/vpk/Velopack.Packaging/PackageBuilder.cs
+++ b/src/vpk/Velopack.Packaging/PackageBuilder.cs
@@ -3,11 +3,11 @@ using System.Text.RegularExpressions;
using Markdig;
using Microsoft.Extensions.Logging;
using NuGet.Versioning;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Core.Abstractions;
using Velopack.NuGet;
using Velopack.Packaging.Abstractions;
+using Velopack.Packaging.Compression;
using Velopack.Util;
namespace Velopack.Packaging;
diff --git a/src/vpk/Velopack.Packaging/Zstd.cs b/src/vpk/Velopack.Packaging/Zstd.cs
index aadc82fe..7222193e 100644
--- a/src/vpk/Velopack.Packaging/Zstd.cs
+++ b/src/vpk/Velopack.Packaging/Zstd.cs
@@ -1,4 +1,5 @@
using Velopack.Core;
+using Velopack.Packaging.Compression;
using Velopack.Packaging.Exceptions;
namespace Velopack.Packaging;
diff --git a/src/vpk/Velopack.Vpk/Commands/Packaging/DeltaGenCommand.cs b/src/vpk/Velopack.Vpk/Commands/Packaging/DeltaGenCommand.cs
index 50e590df..4d3a71ff 100644
--- a/src/vpk/Velopack.Vpk/Commands/Packaging/DeltaGenCommand.cs
+++ b/src/vpk/Velopack.Vpk/Commands/Packaging/DeltaGenCommand.cs
@@ -1,5 +1,6 @@
using Velopack.Core;
using Velopack.Packaging;
+using Velopack.Packaging.Compression;
namespace Velopack.Vpk.Commands.Packaging;
diff --git a/src/vpk/Velopack.Vpk/Commands/Packaging/PackCommand.cs b/src/vpk/Velopack.Vpk/Commands/Packaging/PackCommand.cs
index 93f17dd5..a942abab 100644
--- a/src/vpk/Velopack.Vpk/Commands/Packaging/PackCommand.cs
+++ b/src/vpk/Velopack.Vpk/Commands/Packaging/PackCommand.cs
@@ -1,5 +1,6 @@
using Velopack.Packaging;
+using Velopack.Packaging.Compression;
namespace Velopack.Vpk.Commands.Packaging;
diff --git a/test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs b/test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs
index 7792a126..c9bdbb70 100644
--- a/test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs
+++ b/test/Velopack.CommandLine.Tests/Commands/WindowsCommandTests.cs
@@ -41,7 +41,7 @@ public abstract class ReleaseCommandTests : BaseCommandTests
string cli = GetRequiredDefaultOptions() + "--delta none";
ParseResult parseResult = command.ParseAndApply(cli);
- Assert.True(command.DeltaMode == Packaging.DeltaMode.None);
+ Assert.True(command.DeltaMode == Packaging.Compression.DeltaMode.None);
}
[Fact]
diff --git a/test/Velopack.Packaging.Tests/OsxPackTests.cs b/test/Velopack.Packaging.Tests/OsxPackTests.cs
index e84818d8..e69b8fbf 100644
--- a/test/Velopack.Packaging.Tests/OsxPackTests.cs
+++ b/test/Velopack.Packaging.Tests/OsxPackTests.cs
@@ -1,5 +1,4 @@
using System.Runtime.Versioning;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Util;
diff --git a/test/Velopack.Packaging.Tests/WindowsPackTests.cs b/test/Velopack.Packaging.Tests/WindowsPackTests.cs
index b7cb2818..af1e39f3 100644
--- a/test/Velopack.Packaging.Tests/WindowsPackTests.cs
+++ b/test/Velopack.Packaging.Tests/WindowsPackTests.cs
@@ -5,9 +5,9 @@ using System.Xml.Linq;
using Microsoft.Deployment.WindowsInstaller;
using Microsoft.Win32;
using NuGet.Packaging;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Packaging.Commands;
+using Velopack.Packaging.Compression;
using Velopack.Packaging.Windows.Commands;
using Velopack.Util;
using Velopack.Vpk;
diff --git a/test/Velopack.Tests/SymbolicLinkTests.cs b/test/Velopack.Tests/SymbolicLinkTests.cs
index cc2fc866..75288892 100644
--- a/test/Velopack.Tests/SymbolicLinkTests.cs
+++ b/test/Velopack.Tests/SymbolicLinkTests.cs
@@ -1,7 +1,6 @@
using System.ComponentModel;
using System.IO.Compression;
using NCode.ReparsePoints;
-using Velopack.Compression;
using Velopack.Logging;
using Velopack.Util;
diff --git a/test/Velopack.Tests/UpdateManagerTests.cs b/test/Velopack.Tests/UpdateManagerTests.cs
index 75ca34ef..8816c322 100644
--- a/test/Velopack.Tests/UpdateManagerTests.cs
+++ b/test/Velopack.Tests/UpdateManagerTests.cs
@@ -1,6 +1,5 @@
using System.Text;
using NuGet.Versioning;
-using Velopack.Compression;
using Velopack.Core;
using Velopack.Exceptions;
using Velopack.Locators;
diff --git a/test/Velopack.Tests/ZipPackageTests.cs b/test/Velopack.Tests/ZipPackageTests.cs
index a16bc3da..9950b386 100644
--- a/test/Velopack.Tests/ZipPackageTests.cs
+++ b/test/Velopack.Tests/ZipPackageTests.cs
@@ -39,8 +39,8 @@ public class ZipPackageTests
SymbolicLink.Create(symlink, actual);
SymbolicLink.Create(symfile, actualFile);
- Compression.EasyZip.CreateZipFromDirectoryAsync(logger.ToVelopackLogger(), zipFile, tempDir).GetAwaiterResult();
- Compression.EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), zipFile, extractedDir, expandSymlinks: true);
+ EasyZip.CreateZipFromDirectoryAsync(logger.ToVelopackLogger(), zipFile, tempDir).GetAwaiterResult();
+ EasyZip.ExtractZipToDirectory(logger.ToVelopackLogger(), zipFile, extractedDir, expandSymlinks: true);
Assert.True(File.Exists(Path.Combine(extractedDir, "actual", "file.txt")));
Assert.Equal("hello", File.ReadAllText(Path.Combine(extractedDir, "actual", "file.txt")));