我有一个为.NET 2.0编写的启动器/更新程序应用程序,需要检查用户是否安装了XNA 4.0。
如果不是,则要求用户安装它。
怎么做?
答案 0 :(得分:1)
这是我写的一个函数:
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;
}
答案 1 :(得分:0)
好吧,所以我想说最简单的方法是找到xna 4.0版本是否会找到注册表项。请查看this bytes forum以获取如何操作的示例。
另外,正如我的评论中所述,这不是最佳解决方案,因为C#运行时不是很普遍,这意味着您的安装程序可能甚至无法工作。尝试使用oneclick安装程序或类似的东西(如InnoInstaller)。
编辑:感觉很愚蠢,这是要查找的注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v4.0