vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Installationspfade aller installierten Visual Studio Versionen/Editionen 
Autor: keco
Datum: 24.01.12 20:05

Danke soweit. Das mit der Registry vergesse ich lieber.

Ich habe es händisch mit den APIs versucht, leider ist InstallLocation häufig leer. Vorallem bei den Microsoft-Produkten übermäßig oft. Ich habe mir einiges auflisten lassen und bei den beiden auf dem Computer installierten Visual Studio Editionen habe ich diese:

InstalledProductName: Microsoft Visual Studio 2010 Professional - DEU
InstallLocation:
InstallSource: h:\
LocalPackage: C:\Windows\Installer\221795.msi
Publisher: Microsoft Corporation
VersionMinor: 0
VersionMajor: 10
VersionString: 10.0.40219

InstalledProductName: Microsoft Visual Studio 2008 Professional Edition - DEU
InstallLocation:
InstallSource: h:\
LocalPackage: C:\Windows\Installer\12e1bc.msi
Publisher: Microsoft Corporation
VersionMinor: 0
VersionMajor: 9
VersionString: 9.0.21022

InstallLocation ist sowohl über die API, als auch über die von dir verlinkte Bibliothek leer. Bei der Bibliothek erhalte ich zumindest beim Ermitteln von InstalledProductName eine Win32Exception. Laut der Ausnahmebeschreibung wohl ERROR_MORE_DATA. Weißt du vielleicht, was ich falsch mache oder welche Möglichkeiten ich sonst noch hätte?

Vielleicht interessiert der Code, den ich verwendet habe:
    <DllImport("msi.dll", SetLastError:=True)> _
    Private Shared Function MsiEnumProducts(iProductIndex As Integer, _
    lpProductBuf As System.Text.StringBuilder) As Integer
    End Function
 
    <DllImport("msi.dll", CharSet:=CharSet.Unicode)> _
    Private Shared Function MsiGetProductInfo(product As String, [property] As _
    String, <Out()> valueBuf As System.Text.StringBuilder, ByRef len As _
    Int32) As Int32
    End Function
 
    Public Enum MSI_ERROR As Integer
        ERROR_SUCCESS = 0
        ERROR_MORE_DATA = 234
        ERROR_NO_MORE_ITEMS = 259
        ERROR_INVALID_PARAMETER = 87
        ERROR_BAD_CONFIGURATION = 1610
    End Enum
 
    Public Enum ProductInfos
        ' Hier die Eigenschaftennamen
    End Enum
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
        Dim productGuid As New System.Text.StringBuilder(39)
        Dim msiResult As MSI_ERROR = MSI_ERROR.ERROR_SUCCESS
        Dim index As Integer = 0
 
        While msiResult = MSI_ERROR.ERROR_SUCCESS
            msiResult = DirectCast(MsiEnumProducts(index, productGuid), _
              MSI_ERROR)
 
            If msiResult = MSI_ERROR.ERROR_SUCCESS Then
                For Each enumName In [Enum].GetNames(GetType(ProductInfos))
                    Dim productInfo As New System.Text.StringBuilder(512)
                    MsiGetProductInfo(productGuid.ToString, enumName, _
                      productInfo, 512)
 
                    Debug.WriteLine(enumName & ": " & productInfo.ToString)
                Next
            End If
 
            index += 1
        End While
    End Sub
Nachtrag: Ich habe mir auch mal ReturnValue von MsiGetProductInfo angeschaut. Der Wert ist bei den leeren Feldern immer 0, also MSI_ERROR.ERROR_SUCCESS.

Beitrag wurde zuletzt am 24.01.12 um 20:19:59 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Installationspfade aller installierten Visual Studio Version...2.233keco24.01.12 18:20
Re: Installationspfade aller installierten Visual Studio Ver...1.691ModeratorFZelle24.01.12 18:55
Re: Installationspfade aller installierten Visual Studio Ver...1.742keco24.01.12 20:05
Re: Installationspfade aller installierten Visual Studio Ver...1.660ModeratorFZelle24.01.12 22:57
Re: Installationspfade aller installierten Visual Studio Ver...1.915keco24.01.12 23:41

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel