Question

J'ai une application launcher / updater écrit pour .NET 2.0 qui doit vérifier si l'utilisateur a XNA 4.0 installé.

Si ce n'est pas, alors l'utilisateur est invité à installer.

Comment faire?

Pas de solution correcte

Autres conseils

Voici une fonction que j'ai écrit à faire ceci:

    public string CheckXNAFramework(out bool ok)
    {
        string output = "";

        string baseKeyName = @"SOFTWARE\Microsoft\XNA\Game Studio";
        Microsoft.Win32.RegistryKey installedFrameworkVersions = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(baseKeyName);

        string[] versionNames = installedFrameworkVersions.GetSubKeyNames();

        bool found = false;
        foreach (string s in versionNames)
        {
            if (s == "v4.0")
            {
                found = true;
                break;
            }
        }
        if (found)
        {
            output += "Microsoft XNA Framework found successfully.\n";
            ok = true;
        }
        else
        {
            output += "Correct version of the Microsoft XNA Framework not found. Please install version 4.0 or higher.\n";
            ok = false;
        }

        return output;
    }

D'accord, donc je dirais que la meilleure façon de trouver si la version 4.0 de XNA est installée serait de chercher la clé de Registre. Regardez ce forum octets pour un exemple de la façon de le faire.

En outre, comme il est dit dans mes commentaires, ce n'est pas la meilleure solution car C # runtime est pas très répandue, ce qui signifie que votre installateur pourrait même pas de travail. Essayez le programme d'installation oneclick ou quelque chose de similaire (comme le InnoInstaller).

EDIT: Sentez-vous stupide, ce la la clé de Registre à rechercher: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top