Как определить версию XNA во время выполнения? - PullRequest
3 голосов
/ 29 ноября 2011

У меня есть приложение запуска / обновления, написанное для .NET 2.0, которое должно проверить, установлен ли у пользователя XNA 4.0.

Если это не так, то пользователю предлагается установить его.

Как это сделать?

Ответы [ 2 ]

1 голос
/ 07 марта 2015

Вот функция, которую я написал для этого:

    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;
    }
0 голосов
/ 29 ноября 2011

Хорошо, поэтому я бы сказал, что самый простой способ узнать, установлена ​​ли версия 4.0 xna, - это найти ключ реестра.Посмотрите на этот байтовый форум для примера того, как это сделать.

Кроме того, как указано в моих комментариях, это не лучшее решение, поскольку среда выполнения C # не очень широко распространенаЭто означает, что ваш установщик может даже не работать.Попробуйте установщик OneClick или что-то подобное (например, InnoInstaller).

РЕДАКТИРОВАТЬ: Чувствовать себя глупо, этот ключ реестра искать: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...