【问题标题】:Why does RAD Studio Seattle 10 install Windows 10 SDK? (and does it work with newer SDKs?)为什么 RAD Studio Seattle 10 安装 Windows 10 SDK? (它是否适用于较新的 SDK?)
【发布时间】:2016-03-16 20:50:58
【问题描述】:

在 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 月发布的 SDK),它会工作吗? (很难想象如何,因为一切都在 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 目录:包含 MSI 使用的 8 个不同的 Windows SDK 头文件:BluetoothAPIs.hbluetoothleapis.hbthdef.hbthledef.hbthsdpdef.hno_sal2.hwinapifamily.hws2bth.h

另外,这个单独的安装程序似乎与主 RAD Studio 安装程序冲突。主安装程序也安装这些相同的头文件。然后运行此安装程序,并替换这些文件。然后它以某种未知的原因启动了官方的 Microsoft Windows 10 SDK 安装程序。如果你卸载 Embarcadero SDK 安装包,它会完全删除这 8 个头文件(因此冲突)。

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

官方文档几乎没用:Installation Notes: Installing the 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 通过将文件捆绑在他们自己的安装程序中来做到这一点,如上所示。

【问题讨论】:

  • 1) SDK 安装是可选的;配置安装时可以选择不安装。 2) 包含文件不能放入 EMBT 包含文件夹,因为它们是 SDK 的一部分,而不是 BDS。 3) 仅当您计划使用直接调用 BT 和 BTLE WinAPI 调用时才需要安装 SDK(正如您在报价中指出的那样)。 4) EMBT 无法控制 SDK 使用哪个安装程序;安装程序由 MS 提供。使用不同的安装程序违反了 MS 的使用条款。如果它没有按照您想要的方式工作,您需要联系 MS 进行修改。
  • @KenWhite:在#1 中,“SDK 安装”是指 Embarcadero SDK 安装程序,还是微软官方的安装程序?在 #2 上,Embarcadero SDK 安装程序正是这样做的;我通过在安装 MSSDKInstall.exe 设置之前和之后比较 Embarcadero 安装来验证它。
  • #1 是指通过 Rad Studio 安装程序安装 SDK;这是可选的。您可以选择不安装它。如果您选择让 RAD Studio 安装同时安装 SDK,则使用 MS SDK 安装程序来执行此操作。 2) 包含文件没有放入我的 RDS 包含文件夹中; MSSDK 文件夹已添加到 INCLUDE 环境变量中。我的 $(BDSINCLUDE) 文件夹中没有它们。

标签: delphi c++builder delphi-10-seattle


【解决方案1】:

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

【讨论】:

  • 哇——有趣的说法——你知道这可能是什么要求吗?也许有参考链接?
  • 没有链接,但是 IIRC,Marco Cantù 在网络研讨会上提到了它。西雅图更新 1 安装程序删除该 SDK 时出现问题,该 SDK 本身删除了一些需要的文件(请参阅 community.embarcadero.com/blogs/entry/…)。这个错误没有被注意到,因为没有人一开始就安装了那个 SDK。
【解决方案2】:

如前所述here 您需要在开发系统上安装 Windows 10 SDK,才能创建 .appx 包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多