protected override void Dispose(bool disposing)
 {
     try
     {
         if (VirtualDriveLetter != default)
         {
             MountHelper.DeleteVirtualDrive(VirtualDriveLetter);
             Directory.Delete(VirtualDriveTargetDir, recursive: true);
         }
     }
     catch { } // avoid exceptions on dispose
     base.Dispose(disposing);
 }