题
我有一个为.NET 2.0编写的启动器/Updater应用程序,需要检查用户是否已安装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
不隶属于 StackOverflow