public void Dispose() { if (!IsDisposed) { if (WebResponse != null) { WebResponse.Close(); WebResponse = null; } if (ResponseStream != null) { ResponseStream.Dispose(); ResponseStream = null; } Buffer = null; if (InstallerFileStream != null) { InstallerFileStream.Dispose(); InstallerFileStream = null; } if (InstallerProcess != null) { InstallerProcess.Dispose(); } if (_waitHandle != null) { _waitHandle.Set(); _waitHandle = null; } IsDisposed = true; } }
public void OnInstallerProcessExited(object sender, EventArgs e) { InstallerExitCode = InstallerProcess.ExitCode; InstallerProcess.Dispose(); InstallerProcess = null; Monitor?.Report(new OperationProgress("Completed.") { IsCompleted = true }); try { File.Delete(InstallerFileName); } catch { } Dispose(); }