Вопрос

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

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

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

Нет правильного решения

Другие советы

Вот функция, которую я написал, чтобы сделать это:

    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;
    }

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top