Microsoft.OfficeProPlus.InstallGenerator.Implementation.OfficeLocalInstallManager.UninstallOffice C# (CSharp) Method

UninstallOffice() public method

public UninstallOffice ( string installVer = "2016" ) : void
installVer string
return void
        public void UninstallOffice(string installVer = "2016")
        {
            
            const string configurationXml = "<Configuration><Remove All=\"TRUE\"/><Display Level=\"Full\" /></Configuration>";

            var tmpPath = Environment.ExpandEnvironmentVariables("%temp%");
            var embededExeFiles = EmbeddedResources.GetEmbeddedItems(tmpPath, @"\.exe$");

            //NOTE: Have this function determine if 2013 ProPlus or 2016 ProPlus is installed and then use the right ODT version            
            var installExe = tmpPath + @"\" + embededExeFiles.FirstOrDefault(f => f.ToLower().Contains("2016"));
            if (installVer == "2013")
            {
                //If 2013 then get the 2013 ODT version
                installExe = tmpPath + @"\" + embededExeFiles.FirstOrDefault(f => f.ToLower().Contains("2013"));
            }
            var xmlPath = tmpPath + @"\configuration.xml";

            if (System.IO.File.Exists(xmlPath)) System.IO.File.Delete(xmlPath);
            System.IO.File.WriteAllText(xmlPath, configurationXml);

            var p = new Process
            {
                StartInfo = new ProcessStartInfo()
                {
                    FileName = installExe,
                    Arguments = "/configure " + tmpPath + @"\configuration.xml",
                    CreateNoWindow = true,
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true
                },
            };
            p.Start();
            p.WaitForExit();

            var error = p.StandardError.ReadToEnd();
            if (!string.IsNullOrEmpty(error)) throw (new Exception(error));

            if (System.IO.File.Exists(xmlPath)) System.IO.File.Delete(xmlPath);

            foreach (var exeFilePath in embededExeFiles)
            {
                try
                {
                    if (System.IO.File.Exists(tmpPath + @"\" + exeFilePath))
                    {
                        System.IO.File.Delete(tmpPath + @"\" + exeFilePath);
                    }
                }
                catch { }
            }
        }
    

Usage Example

 public void UninstallOffice(string installVer = "2016")
 {
     LocalInstall.UninstallOffice(installVer);
 }