質問

ユーザーが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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top