1

私は、ユーザーが SDK のバージョンとビット タイプを選択して .Net Framework SDK ツールを実行できるようにするツールの更新に取り組んでいます。

これを行うには、最新の SDK のインストール場所を取得する必要があり、v1.0 までさかのぼります。これまでのところ、以下を見つけて確認を探しています。

v1.0、v1.1、および v2.0 フレームワーク インストール フォルダーのレジストリ キーは、それぞれのレジストリ プラットフォーム バージョンの下にあります。つまり、64 ビット インストール フォルダの場所は 64 ビット レジストリ エントリであり、32 ビット インストール ディレクトリは 32​​ ビット レジストリ キーです。

Examples:

Windows XP:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 

Windows 7 64 bit (v2.0 only):
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\.NETFramework\v2.0
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\.NETFramework\v2.0

v3.0、v3.5、v4.0 フレームワークのインストール フォルダーには、32 ビットと 64 ビットの両方のレジストリ キーに、32 ビットのインストール フォルダーと 64 ビットのインストール フォルダーがあります。これにより、これらのバージョンでは十分に単純になります。OSビットバージョンとあなたの権利としてキーを読むだけです。

Examples:

Windows 7 64 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKNetFx35Tools
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKNetFx35Tools-x64

v4.5、v4.5.1 フレームワークのインストール フォルダーは、32 ビットのレジストリ キーの下にのみ存在するようです。64 ビットのインストールがありますが、レジストリ キーは 3264WoW ノードの下にしか存在しないため、32 ビット アプリケーションのように読み取る必要があります。

Examples:

Windows 7 64 bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools-x64

Wow6432Node への参照は、64 ビット Windows では 32 ビット フラグで読み取られたレジストリを使用して読み取られることに注意してください。Wow6432Node を直接準備することはありません。読み取るセクションをレジストリ オブジェクトに指定するだけです。

これはかなり複雑なようで、正しくないと思います。また、.Net SDK のインストール場所に関する決定的なドキュメントを見つけることができませんでした。

質問は、私がここで見逃したもの、または間違っているものがあるということです。

4

1 に答える 1