Zuverlässiges Prüfen auf .Net Framework 4.5

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Kevin Hombre.

    Zuverlässiges Prüfen auf .Net Framework 4.5

    Hallo.

    Ich gehe mit der Entwicklung , habe Windows 8 und Visual Studio for Desktop.

    So weit so gut, .Net Framework 4.5 ist wirklich geil allerdings steh ich jetzt vor einer Sache die ziemlich nervt.

    Meine Programme schraube ich nicht mehr auf andere .Net Frameworks , sie bleiben so wie sie sind, auf .Net Framework 4.5 eingestellt.


    Das Problem was sich jetzt aber aufweist ist: Leute haben .Net Framework 4.0 installiert und mein Programm öffnet sich bei Ihnen und läuft solange,
    bis eine Funktion aus dem .Net Framework 4.5 genutzt wird. Shice, weil dann das Programm abstürzt(logisch).


    Jetzt meine Frage: Gibt es eine Möglichkeit, zuverlässig zu Prüfen(egal ob x86 oder x64) , ob .Net Framework 4.5 genutzt werden kann bzw. installiert ist?

    Ich möchte keinen fertigen Code oder soetwas. Mir reicht schon wenn jemand sagen kann, wie man das machen kann.


    Danke im Vorraus.
    Seltsam. Es gibt einige Leute, bei denen startet das Programm dennoch mit .Net Framework 4.0

    Die App.Config sieht so aus:

    VB.NET-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <configuration>
    3. </configuration>


    Woran liegt das?
    Hey,

    Ich habe mal diese Threads ausgegraben, da habe ich dies gefunden:

    [VB.NET] Computer auf .net Framework 4 prüfen
    [VB 2010] Net.Framework Version lesen

    Vielleicht ist da was für dich dabei ;)

    Gruß OneWorld

    [EDIT]: Ich seh grad der Thread ist schon etwas älter :S
    Youtube Info Library 2013 jetzt im Showroom.
    Eventuell, als letzter Ausweg (für den Fall, dass Du sonst nichts findest) wäre, eine (möglichst nicht aufwändige) Funktion auszuführen, die genau so einen Fehler verursacht und zu testen, ob man das abfangen kann (Try-Catch mit entsprechendem Exception-Typ). Tritt kein Fehler auf, passt alles, tritt einer auf, eben nicht.
    Das Unschöne dabe ist halt, dass das Ausführen von eigentlich unnötigen Codes unsinnig ist. Deshalb sollte man es vermeiden.
    Wie gesagt: Nur als letzter Ausweg ;)
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Naja ich hab das Problem:

    VB.NET-Quellcode

    1. System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()

    gibt mir Folgendes zurück: v4.0.30319

    VB.NET-Quellcode

    1. Environment.Version

    gibt mir Folgendes zurück: 4.0.30319.18046



    Die Anwendung ist auf .Net Framework 4.5 eingestellt,
    dennoch ist sie mit 4.0 ausführbar ( für mich bedeutet das,
    dass Windows die niedrigste .Net Framework Version automatisch auswählt).

    Mit den Werten kann ich also nichts anfangen.


    Das mit einem Try Catch abzufangen ist mir da doch bisschen zu gefährlich.
    Das Problem ist immernoch aktuell.


    Hab mir einen Code geschrieben, der bei mir funktioniert, wüsste jetzt jedoch gerne,
    ob der auch bei anderen Personen funktioniert.

    VB.NET-Quellcode

    1. Private Function Test() As String()
    2. Dim R As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\.NETFramework", False)
    3. Dim V As String = R.GetSubKeyNames.Where(Function(c) c.StartsWith("v4."))(0)
    4. Dim e As String() = R.OpenSubKey(String.Concat(V, "\SKUs")).GetSubKeyNames().Where(Function(d) d.Contains("=")).Select(Function(c) c.Split(CChar("="))(1)).ToArray
    5. Return e
    6. End Function



    Kann das mal jemand testen? Gibt die installierten .Net Frameworkversionen aus.