为什么RAD Studio Seattle 10会安装Windows 10 SDK?(它是否适用于较新的SDK?)

Jam*_*ton 5 delphi c++builder delphi-10-seattle

在C++ Builder Seattle 10 Update 1安装结束时,Embarcadero的主要设置启动了一个名为Microsoft Windows 10 SDK Installer的附加嵌入式安装程序.这就是它的样子,万一你忘记了:

在此输入图像描述

然后,此安装程序开始安装原始RTM Windows 10 SDK,如下所示:

在此输入图像描述

为什么C++ Builder会安装它?C++ Builder如何与SDK链接 - 它究竟使用了什么?如果我安装一个较新的Windows SDK(例如2015年11月发布的那个),它会起作用吗?(很难想象如何,因为在IDE中设置所有内容以使用文件C:\Program Files (x86)\Embarcadero\Studio\17.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打开它,你会发现这是一个非常简单的安装程序,它将一些蓝牙头文件安装到Embarcadero include目录中.
    • OFFLINE目录:包含显然使用了微星8个不同的Windows SDK头文件:BluetoothAPIs.h,bluetoothleapis.h,bthdef.h,bthledef.h,bthsdpdef.h,no_sal2.h,winapifamily.h,ws2bth.h.

另外看来,这个单独的安装程序与主要的RAD Studio安装程序冲突.主安装程序还会安装这些相同的头文件.然后运行此安装程序,并替换这些文件.然后它出于某种未知原因启动官方Microsoft Windows 10 SDK安装程序.如果卸载Embarcadero SDK安装程序包,则会完全删除这8个头文件(因此会发生冲突).

所以:(1)为什么他们不在主安装中只包含那8个头文件 - 这一切的重点是什么,(2)为什么他们启动官方的Microsoft Windows 10 SDK安装程序,(3)是否有一些整合我不知道?

官方文档几乎无用:安装说明:安装Windows 10 SDK.

RAD Studio Seattle的安装向导允许您安装Microsoft Windows 10 SDK,它为Windows API添加标头.

注意:Windows 10 SDK只是C++ Builder的必备条件,以支持对蓝牙和BluetoothLE Windows API的直接调用.

但Microsoft的SDK安装程序不会将标头放入Embarcadero include目录中.事实上,Embarcadero通过将文件捆绑在他们自己的安装程序中来实现这一点,如上所述.

Uwe*_*abe 7

安装Windows 10 SDK只是Embarcadero满足Microsoft的要求.它对您的RAD Studio安装没有影响.换句话说:如果取消该设置,则不会造成任何伤害.

  • 没有任何联系,但是IIRC,MarcoCantù在网络研讨会上提到了这一点.西雅图Update 1安装程序删除该SDK时出现问题,该SDK本身删除了一些所需文件(请参阅https://community.embarcadero.com/blogs/entry/pay-attention-with-windows-10-sdk-installer-当改质-10-西雅图).这个错误在发布之前没有被注意到,因为没有人首先安装该SDK. (2认同)