private void cleanupWIMButton_Click(object sender, EventArgs e) { DismApi.Initialize(DismLogLevel.LogErrors); Task.Factory.StartNew(() => { Task.Run(() => { if (this.InvokeRequired) { this.Invoke((MethodInvoker)(() => { loadingPanel.Visible = true; mainPanel.Enabled = false; mainPanel.Visible = false; })); } else { loadingPanel.Visible = true; mainPanel.Enabled = false; mainPanel.Visible = false; } }); try { DismApi.CleanupMountpoints(); } finally { // Shut down the DismApi if (this.InvokeRequired) { this.Invoke((MethodInvoker)(() => { loadingPanel.Visible = false; mainPanel.Enabled = true; mainPanel.Visible = true; dismOutputListbox.Items.Add("Cleaned up Mount Points"); })); } else { loadingPanel.Visible = false; mainPanel.Enabled = true; mainPanel.Visible = true; dismOutputListbox.Items.Add("Cleaned up Mount Points"); } DismApi.Shutdown(); } }); }
private DismSession GetSession() { foreach (DismMountedImageInfo mountedImageInfo in DismApi.GetMountedImages()) { DismApi.UnmountImage(mountedImageInfo.MountPath, false); } DismApi.CleanupMountpoints(); DismApi.MountImage(InstallWimPath, MountPath, 1); return(DismApi.OpenOfflineSession(MountPath)); }