我一直在努力更新一个允许用户选择 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
请注意,在 64 位窗口上,将使用带有 32 位标志的注册表读取任何对 Wow6432Node 的引用。我从来没有直接准备好 Wow6432Node,只是指定注册表对象从哪个部分读取。
这似乎很复杂,让我觉得我没有正确。此外,我无法在 .Net SDK 安装位置找到任何权威文档。
所以问题是我在这里错过了什么或有什么不正确的。