Как определить версию XNA во время выполнения?
-
25-10-2019 - |
Вопрос
У меня есть приложение запуска/обновления, написанное для .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