为什么 RAD Studio Seattle 10 安装 Windows 10 SDK? (它适用于较新的 SDK 吗?)
Why does RAD Studio Seattle 10 install Windows 10 SDK? (and does it work with newer SDKs?)
在 C++Builder Seattle 10 Update 1 安装结束时,Embarcadero 的主安装程序会启动一个名为 Microsoft Windows 10 SDK Installer 的附加嵌入式安装程序。这是它的样子,以防你忘记了:
此安装程序然后开始安装原始 RTM Windows 10 SDK,如下所示:
C++Builder为什么要安装这个? C++Builder link 如何使用 SDK - 它究竟使用什么?如果我安装更新的 Windows SDK(例如 2015 年 11 月发布的),它会起作用吗? (很难想象如何,因为 IDE 中的所有内容都设置为使用 C:\Program Files (x86)\Embarcadero\Studio.0\include\windows\sdk
中的文件,并且这些文件包括 Embarcadero 对 SDK 所做的更改,例如特殊的 bcc32 pragma
语句。 )
我已经分析了 RAD Studio 的安装文件,试图弄清楚发生了什么,但我没有很好的答案来解释他们为什么这样做:
- 在您的 RAD Studio ISO 上,检查 7-Zip 中的``\Install\Setup.exe`。
- 有一个
setup.res
文件;在 7-Zip 中也打开它。
- 在
setup.res
中,您会找到上面第一个屏幕截图中看到的 MSSDKInstall.exe
。在 7-Zip 中打开它。
- 然后您会看到几个文件:
MSSDKInstall.msi
:如果你用 Orca 打开它,你会看到这是一个非常简单的安装程序,可以将一些蓝牙 header 文件安装到 Embarcadero include
目录。
OFFLINE
目录:包含 8 个不同的 Windows SDK header 明显被 MSI 使用的文件:BluetoothAPIs.h
、bluetoothleapis.h
、bthdef.h
, bthledef.h
, bthsdpdef.h
, no_sal2.h
, winapifamily.h
, ws2bth.h
.
此外,这个单独的安装程序似乎与主 RAD Studio 安装程序冲突。主安装程序也会安装这些相同的 header 文件。那么这个安装程序就是运行,并替换了这些文件。然后由于某些未知原因,它启动了官方 Microsoft Windows 10 SDK 安装程序。如果您卸载 Embarcadero SDK 安装程序包,它会完全删除这 8 个 header 文件(因此发生冲突)。
所以:(1) 为什么他们不在主安装中包含这 8 个 header 文件 - 这一切的意义何在,(2) 为什么他们启动官方 Microsoft Windows 10 SDK 安装程序,(3) 是否有一些我不知道的集成?
官方文档几乎没用:Installation Notes: Installing the Windows 10 SDK.
The installation wizard of RAD Studio Seattle allows you to install
the Microsoft Windows 10 SDK, which adds headers for the Windows API.
Note: The Windows 10 SDK is only a requisite for C++Builder in order
to support direct calls to the Bluetooth and the BluetoothLE Windows
APIs.
但微软的 SDK 安装程序不会将 headers 放入 Embarcadero include
目录中。事实上,Embarcadero 通过将文件捆绑在他们自己的安装程序中来做到这一点,如上所示。
Windows10 SDK的安装只是Embarcadero满足了微软的一个要求。它对您的 RAD Studio 安装没有影响。换句话说:如果您取消该设置,您没有任何伤害。
如前所述here
您需要在开发系统上安装 Windows 10 SDK,才能创建 .appx
包。
在 C++Builder Seattle 10 Update 1 安装结束时,Embarcadero 的主安装程序会启动一个名为 Microsoft Windows 10 SDK Installer 的附加嵌入式安装程序。这是它的样子,以防你忘记了:
此安装程序然后开始安装原始 RTM Windows 10 SDK,如下所示:
C++Builder为什么要安装这个? C++Builder link 如何使用 SDK - 它究竟使用什么?如果我安装更新的 Windows SDK(例如 2015 年 11 月发布的),它会起作用吗? (很难想象如何,因为 IDE 中的所有内容都设置为使用 C:\Program Files (x86)\Embarcadero\Studio.0\include\windows\sdk
中的文件,并且这些文件包括 Embarcadero 对 SDK 所做的更改,例如特殊的 bcc32 pragma
语句。 )
我已经分析了 RAD Studio 的安装文件,试图弄清楚发生了什么,但我没有很好的答案来解释他们为什么这样做:
- 在您的 RAD Studio ISO 上,检查 7-Zip 中的``\Install\Setup.exe`。
- 有一个
setup.res
文件;在 7-Zip 中也打开它。 - 在
setup.res
中,您会找到上面第一个屏幕截图中看到的MSSDKInstall.exe
。在 7-Zip 中打开它。 - 然后您会看到几个文件:
MSSDKInstall.msi
:如果你用 Orca 打开它,你会看到这是一个非常简单的安装程序,可以将一些蓝牙 header 文件安装到 Embarcaderoinclude
目录。OFFLINE
目录:包含 8 个不同的 Windows SDK header 明显被 MSI 使用的文件:BluetoothAPIs.h
、bluetoothleapis.h
、bthdef.h
,bthledef.h
,bthsdpdef.h
,no_sal2.h
,winapifamily.h
,ws2bth.h
.
此外,这个单独的安装程序似乎与主 RAD Studio 安装程序冲突。主安装程序也会安装这些相同的 header 文件。那么这个安装程序就是运行,并替换了这些文件。然后由于某些未知原因,它启动了官方 Microsoft Windows 10 SDK 安装程序。如果您卸载 Embarcadero SDK 安装程序包,它会完全删除这 8 个 header 文件(因此发生冲突)。
所以:(1) 为什么他们不在主安装中包含这 8 个 header 文件 - 这一切的意义何在,(2) 为什么他们启动官方 Microsoft Windows 10 SDK 安装程序,(3) 是否有一些我不知道的集成?
官方文档几乎没用:Installation Notes: Installing the Windows 10 SDK.
The installation wizard of RAD Studio Seattle allows you to install the Microsoft Windows 10 SDK, which adds headers for the Windows API.
Note: The Windows 10 SDK is only a requisite for C++Builder in order to support direct calls to the Bluetooth and the BluetoothLE Windows APIs.
但微软的 SDK 安装程序不会将 headers 放入 Embarcadero include
目录中。事实上,Embarcadero 通过将文件捆绑在他们自己的安装程序中来做到这一点,如上所示。
Windows10 SDK的安装只是Embarcadero满足了微软的一个要求。它对您的 RAD Studio 安装没有影响。换句话说:如果您取消该设置,您没有任何伤害。
如前所述here
您需要在开发系统上安装 Windows 10 SDK,才能创建 .appx
包。