//Anzeige des PackageSourcepfades in der nebenanliegenden Textbox private void combo_PackageSource_MouseLeave(object sender, MouseEventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\NMPackageManagement\\NMPackageManagement.xml"; List <NMPackageConfigFile> packageSources = NMPackageConfigFile.ReadConfig(appdata); foreach (NMPackageConfigFile packageSource in packageSources) { if (packageSource.SourceName.Equals(combo_PackageSource.Text)) { txt_PackageSource.Text = packageSource.Location; } } }
private void combo_PackageSource_PreviewMouseDown(object sender, MouseButtonEventArgs e) { string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\NMPackageManagement\\NMPackageManagement.xml"; List <NMPackageConfigFile> packageSources = NMPackageConfigFile.ReadConfig(appdata); //Leeren der Combobox combo_PackageSource.Items.Clear(); //Hinzufügen der PackageSources zur Combobox foreach (NMPackageConfigFile packageSource in packageSources) { combo_PackageSource.Items.Add(packageSource.SourceName); } }
private void btn_OK_Click(object sender, RoutedEventArgs e) { //leeren der Stack_info (infoboxen) listv_info.Items.Clear(); //Info Item für Infobox ListViewItem info; #region Überprüfung //Überprüfen ob alle relevanten Fenster etc ausgefüllt sind. //Textbox für neue infos bool ueberpruefung = true; if (txt_PackageSource.Text == "") { info = new ListViewItem(); info.Content = "Packagsource wurde nicht gesetzt"; listv_info.Items.Add(info); ueberpruefung = false; } if (Combo_Architektur.Text == "Programmarchitektur") { info = new ListViewItem(); info.Content = "Programmarchitektur muss ausgeählt werden!"; listv_info.Items.Add(info); ueberpruefung = false; } if (combo_Programmordner.Text == "Softwareordner wählen" || combo_Programmordner.Text == "Neuer Ordner") { info = new ListViewItem(); info.Content = "Softwareordner wurde nicht gewählt"; listv_info.Items.Add(info); ueberpruefung = false; } if (tbox_Programmpfad.Text == "Pfad zur Prgrammdatei" || tbox_Programmpfad.Text == "Pfad zum Programmordner") { info = info = new ListViewItem(); info.Content = "Pfad zur Programmdatei / Programmordner nicht gesetzt!"; listv_info.Items.Add(info); ueberpruefung = false; } if (combo_Programmdateipfad.Text == "exe, msi auswählen") { info = info = new ListViewItem(); info.Content = "exe, msi auswählen."; listv_info.Items.Add(info); ueberpruefung = false; } if (t_silentArgs.Text == "Silent install Parameter eintragen") { info = info = new ListViewItem(); info.Content = "Keine Silent install Argumente eingetragen"; listv_info.Items.Add(info); ueberpruefung = false; } if (txt_version.Text == "Versionsnummer") { info = info = new ListViewItem(); info.Content = "Keine Versionsnummer eingetragen"; listv_info.Items.Add(info); ueberpruefung = false; } if (txt_uninstall.Text == "Uninstallstring") { info = new ListViewItem(); info.Content = "Kein Uninstallstring eingetragen"; listv_info.Items.Add(info); ueberpruefung = false; } if (txt_uninstallSilentArgs.Text == "Silent Uninstallargs") { info = new ListViewItem(); info.Content = "Keine Silent Uninstall Argumente angegeben"; listv_info.Items.Add(info); ueberpruefung = false; } #endregion //Wenn Überprüfung OK, dann Ordner anlegen, Dateien kopieren, XML Metadaten anlegen. if (ueberpruefung) { #region Ordnererstellung string[] folderpaths = new string[] { txt_PackageSource.Text + "\\" + combo_Programmordner.Text, txt_PackageSource.Text + "\\" + combo_Programmordner.Text + "\\" + Combo_Architektur.Text, txt_PackageSource.Text + "\\" + combo_Programmordner.Text + "\\" + Combo_Architektur.Text + "\\" + txt_version.Text, txt_PackageSource.Text + "\\" + combo_Programmordner.Text + "\\" + Combo_Architektur.Text + "\\" + txt_version.Text + "\\LOG", txt_PackageSource.Text + "\\" + combo_Programmordner.Text + "\\" + Combo_Architektur.Text + "\\" + txt_version.Text + "\\Setup" }; bool isfolderCreated = true; try { //Überprüfen / Erstellen der Ordner TestFolderPath(folderpaths); } catch (Exception) { MessageBox.Show("Fehler beim anlegen der Ordner"); isfolderCreated = false; } #endregion #region Kopiere Dateien / Ordner bool isFileCopied = true; if (isfolderCreated) { try { //Kopieren der Datein if (combo_Programmart.Text == "Neue Programmdatei") { File.Copy(tbox_Programmpfad.Text, $"{folderpaths[4]}\\{combo_Programmdateipfad.Text}"); } else if (combo_Programmart.Text == "Neuer Programmordner") { DirectoryCopy(tbox_Programmpfad.Text, folderpaths[4], true); } } catch (Exception) { MessageBox.Show("Fehler beim kopieren der Datein"); isFileCopied = false; } } #endregion #region Generiere Metadata XML bool isMetadataGenerated = true; if (isfolderCreated) { try { #region Read LocalinstallFolder //ReadConfig für localInstallFolder string localInstallFolder = ""; string appdata = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\NMPackageManagement\\NMPackageManagement.xml"; List <NMPackageConfigFile> packageSources = NMPackageConfigFile.ReadConfig(appdata); foreach (NMPackageConfigFile packageSource in packageSources) { if (packageSource.SourceName.Equals(combo_PackageSource.Text)) { localInstallFolder = packageSource.LocalInstallFolder; } } #endregion //Generiere Metadaten. string pathDependencies = $"{txt_PackageSource.Text}\\{combo_Programmordner.Text}\\{Combo_Architektur.Text}\\{txt_version.Text}\\Dependencies.xml"; string pathMetadata = $"{txt_PackageSource.Text}\\{combo_Programmordner.Text}\\{Combo_Architektur.Text}\\{txt_version.Text}\\Metadata.xml"; string packageName = combo_Programmordner.Text; string fileName = combo_Programmdateipfad.Text; string fileLocation = $"{ txt_PackageSource.Text }\\{ combo_Programmordner.Text}\\{ Combo_Architektur.Text}\\{ txt_version.Text}\\Setup"; string folderPath = $"{ txt_PackageSource.Text }\\{ combo_Programmordner.Text}\\{ Combo_Architektur.Text}\\{ txt_version.Text}"; string installFolder = localInstallFolder; string architecture = Combo_Architektur.Text; string silentArgs = t_silentArgs.Text; string version = txt_version.Text; string uninstallString = txt_uninstall.Text; string silentArgsUninstall = txt_uninstallSilentArgs.Text; string psChildName = txt_psChildName.Text; #region Überprüfung Checkboxen bool hasDependencies = false; bool needsRestart = false; if (check_dependencies.IsChecked == true) { hasDependencies = true; } if (check_restart.IsChecked == true) { needsRestart = true; } #endregion GenerateMetadataXML(pathMetadata, packageName, fileName, fileLocation, folderPath, installFolder, architecture, silentArgs, version, uninstallString, silentArgsUninstall, psChildName, needsRestart, hasDependencies); if (hasDependencies) { GenerateDependenciesXML(pathDependencies, wrapp_combo_Dependencies.Children); } } catch (Exception) { MessageBox.Show("Fehler beim generieren der Metadaten / Dependencies XML"); isMetadataGenerated = false; } } #endregion #region Alles erstellt, kopiert... //Überprüfung ob alles erstellt und Kopiert wurde. if (isfolderCreated && isFileCopied && isMetadataGenerated) { MessageBox.Show($"Package für {combo_Programmdateipfad.Text} wurde erstellt"); } else { MessageBox.Show($"Package wurde nicht richtig hinzugefügt!\n Bitte überprüfen Sie den Pfad: {txt_PackageSource.Text + "\\" + combo_Programmdateipfad.Text}", "Alert"); } #endregion } }