実行時にXNAバージョンを検出する方法は?
-
25-10-2019 - |
質問
ユーザーがXNA 4.0をインストールしているかどうかを確認する必要がある.NET 2.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