Example #1
0
        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));
        }