public Boolean CopyInstallationFiles(String sourceFolder, String destinationFolder) { FileInfo[] sourceFiles = null; try { DirectoryInfo sourceDirectory = new DirectoryInfo(Path.Combine(sourceFolder, "Binaries")); sourceFiles = sourceDirectory.GetFiles("*.*", SearchOption.AllDirectories); } catch (Exception exc) { if (listener != null) { listener.NotifyObject(new Exception("Falha ao copiar arquivos! " + exc.Message)); } return(false); } TargetDirectory targetDirectory = new TargetDirectory(destinationFolder); if (!targetDirectory.CopyFilesFrom(sourceFiles)) { if (listener != null) { listener.NotifyObject(new Exception("Falha ao copiar arquivos! " + targetDirectory.GetLastError())); } return(false); } return(true); }
private Boolean CopyInstallationFiles() { txtProcessInfo.Text += Environment.NewLine + "Copiando arquivos de instalação..."; const String copyFail = "Falha ao copiar arquivos de instalação. "; TargetDirectory targetDir = new TargetDirectory(frontendInfo.installDirectory); // Prepara o diretório de destino ( faz algumas verificações / cria o diretório ) // Caso existam arquivos no diretório aborta e exibe mensagem de erro if (!targetDir.Mount()) { txtProcessInfo.Text += Environment.NewLine + copyFail + Environment.NewLine + targetDir.GetLastError(); return(false); } FileInfo[] sourceFiles = null; try // tenta obter os arquivos de origem (extraídos do instalador) { String tempFolder = PathFormat.Adjust(Path.GetTempPath()); String installationFilesDirectory = PathFormat.Adjust(tempFolder + "AccountingServerFiles"); File.Copy(installationFilesDirectory + "DataAccess.XML", installationFilesDirectory + @"WebFrontend\WebAccounting\App_Data\DataAccess.XML", true); File.Copy(installationFilesDirectory + "DataAccess.XML", installationFilesDirectory + @"WebFrontend\WebAdministrator\App_Data\DataAccess.XML", true); DirectoryInfo sourceDirectory = new DirectoryInfo(installationFilesDirectory + "WebFrontend"); sourceFiles = sourceDirectory.GetFiles("*.*", SearchOption.AllDirectories); } catch (Exception exc) { txtProcessInfo.Text += Environment.NewLine + copyFail + Environment.NewLine + exc.Message; return(false); } // Tenta copiar os arquivos para o diretório de instalação if (!targetDir.CopyFilesFrom(sourceFiles)) { txtProcessInfo.Text += Environment.NewLine + copyFail + Environment.NewLine + targetDir.GetLastError(); return(false); } // Se não houve nenhuma falha notifica sucesso return(true); }
private Boolean InstallServices() { txtProcessInfo.Text += Environment.NewLine + "Iniciando instalação..."; const String installFail = "Falha ao instalar serviços. "; if (String.IsNullOrEmpty(txtInstallDirectory.Text)) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + "É necessário informar um diretório. "; return(false); } // Ajusta o formato do caminho de instalação txtInstallDirectory.Text = PathFormat.Adjust(txtInstallDirectory.Text); txtProcessInfo.Text += Environment.NewLine + "Preparando-se para copiar arquivos..."; TargetDirectory targetDir = new TargetDirectory(txtInstallDirectory.Text); // Prepara o diretório de destino ( faz algumas verificações / cria o diretório ) // Caso existam arquivos no diretório aborta e exibe mensagem de erro if (!targetDir.Mount()) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + targetDir.GetLastError(); return(false); } txtProcessInfo.Text += Environment.NewLine + "Copia de arquivos iniciada..."; FileInfo[] sourceFiles = null; try // tenta obter os arquivos de origem (extraídos do instalador) { String tempFolder = PathFormat.Adjust(Path.GetTempPath()); String installationFilesDirectory = PathFormat.Adjust(tempFolder + "AccountingServerFiles"); File.Copy(installationFilesDirectory + "DataAccess.XML", installationFilesDirectory + @"WindowsServices\DataAccess.XML", true); DirectoryInfo sourceDirectory = new DirectoryInfo(installationFilesDirectory + "WindowsServices"); sourceFiles = sourceDirectory.GetFiles("*.*", SearchOption.AllDirectories); } catch (Exception exc) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + exc.Message; return(false); } // Tenta copiar os arquivos para o diretório de instalação if (!targetDir.CopyFilesFrom(sourceFiles)) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + targetDir.GetLastError(); return(false); } try // Tenta registrar os serviços no sistema operacional e inicia-los { txtProcessInfo.Text += Environment.NewLine + "Registrando serviços no Windows..."; ServiceHandler.InstallService(txtInstallDirectory.Text + "PrintLogImporter.EXE"); ServiceHandler.InstallService(txtInstallDirectory.Text + "CopyLogImporter.EXE"); ServiceHandler.InstallService(txtInstallDirectory.Text + "ReportMailer.EXE"); txtProcessInfo.Text += Environment.NewLine + "Iniciando serviços..."; ServiceHandler.StartService("Print Log Importer", 33000); ServiceHandler.StartService("Copy Log Importer", 33000); ServiceHandler.StartService("Report Mailer", 33000); } catch (Exception exc) { txtProcessInfo.Text += Environment.NewLine + installFail + Environment.NewLine + exc.Message; return(false); } // Se não houve nenhuma falha retorna informações da instalação e notifica sucesso servicesInfo = GetServicesInfo(); return(true); }