Einträge mit Tag “msi”

VB .NET: MSI Pakete automatisch installieren

09. Jun 2009 6:41 (bearbeiten)

Dieses kleine Modul installiert alle MSI-Pakete, die im aktuellen Programmverzeichnis gefunden werden im "Quiet"-Modus, d. h. ohne irgendwelche Nachfragen.

  1. Module modMain
  2.  
  3. Sub Main()
  4. Console.WriteLine("Installiere MSI Pakete...")
  5. Try
  6. RunAll()
  7. Catch ex As Exception
  8. Console.WriteLine("Fehler: " & ex.Message)
  9. Console.WriteLine("Bitte drücken Sie eine beliebige Taste zum Beenden.")
  10. Console.ReadLine()
  11. End Try
  12. Console.WriteLine("Installation abgeschlossen.")
  13. End Sub
  14.  
  15. ''' <summary>
  16. ''' Nach MSI-Paketen im aktuellen Verzeichnis (dieser EXE) suchen und alle MSI-Pakete
  17. ''' nacheinander ausführen.
  18. ''' </summary>
  19. ''' <remarks></remarks>
  20. Public Sub RunAll()
  21.  
  22. Dim lstFiles As Collections.ObjectModel.ReadOnlyCollection(Of String) = _
  23. My.Computer.FileSystem.GetFiles(Environment.CurrentDirectory, FileIO.SearchOption.SearchTopLevelOnly, "*.MSI")
  24.  
  25. For Each fn As String In lstFiles
  26. ExecuteAndWait(fn, "/quiet")
  27. Next
  28.  
  29. End Sub
  30.  
  31. ''' <summary>
  32. ''' Einen Prozess starten und auf dessen Ende warten
  33. ''' </summary>
  34. ''' <param name="ProcessPath">Name der Datei die ausgeführt werden soll</param>
  35. ''' <param name="Arguments">Optionale Parameter</param>
  36. ''' <remarks></remarks>
  37. Public Sub ExecuteAndWait(ByVal ProcessPath As String, Optional ByVal Arguments As String = "")
  38.  
  39. Dim proc As System.Diagnostics.Process
  40.  
  41. Try
  42. proc = New System.Diagnostics.Process()
  43. proc.StartInfo.FileName = ProcessPath
  44. proc.StartInfo.Arguments = Arguments
  45. proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal
  46. proc.Start()
  47. proc.WaitForExit()
  48. proc.Close()
  49. Catch ex As Exception
  50. MsgBox(String.Format("Prozess {0} konnte nicht gestartet werden. Fehler: {1}.", ProcessPath, ex.Message))
  51. End Try
  52.  
  53. End Sub
  54.  
  55. End Module

Tags ¦ , , , , und