我有一个用.NET 2.0编写的启动器/更新程序,需要检查用户是否安装了XNA 4.0。
如果没有安装,就会要求用户安装它。
如何实现呢?
我有一个用.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版本最简单的方法是查找注册表键。请参考this bytes forum中的示例。
此外,正如我的评论所述,这并不是最佳解决方案,因为C#运行时并不是非常普及,这意味着您的安装程序可能甚至无法工作。尝试使用oneclick安装程序或类似的软件(如InnoInstaller)。
编辑:感觉有点傻,这是要查找的注册表键:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0
可能是您要查找的注册表键。 - Jess