private void ReadUninstallScriptAndDLLFiles(XmlDocument doc, string moduleFolderPath, Installers installerClass) { XmlElement root = doc.DocumentElement; if (!String.IsNullOrEmpty(root.ToString())) { ArrayList dllFiles = new ArrayList(); string _unistallScriptFile = string.Empty; XmlNodeList xnFileList = doc.SelectNodes("sageframe/folders/folder/files/file"); if (xnFileList.Count != 0) { foreach (XmlNode xn in xnFileList) { string _fileName = xn["name"].InnerXml; try { #region CheckAlldllFiles if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains(".dll")) { dllFiles.Add(_fileName); } #endregion #region ReadUninstall SQL FileName if (!String.IsNullOrEmpty(_fileName) && _fileName.Contains("Uninstall.SqlDataProvider")) { _unistallScriptFile = _fileName; } #endregion } catch (Exception ex) { Exceptions = ex.Message; } } if (_unistallScriptFile != "") { RunUninstallScript(_unistallScriptFile, moduleFolderPath, installerClass); } // check IModuleExtraCodeExecute interface is implemented or not for install/unInstall of module if (installerClass.IsIModuleExtraCodeInterfaceImplemented(doc)) { installerClass.ExtraCodeOnUnInstallation(doc); } DeleteAllDllsFromBin(dllFiles, moduleFolderPath); } } }