如何在通用 Windows 应用程序中使用配置设置

How to use configuration settings in a Universal Windows App

我有一个通用的 windows 应用程序部署到 Raspberry PI 3 with windows iOT Core,PI 3 可以连接很多传感器,因此需要注册这些传感器使用 Azure IOT Hub,为了做到这一点,我使用设备资源管理器手动注册它们,然后在我创建的 XML 文件上,我放置了设备密钥和其他配置设置。

通过这种方式,PI 可以使用配置文件中的 DeviceKey,传感器读取数据,然后将数据发送到 IOT HUB。

小菜一碟,工作正常。

但是我不知道这种配置方式是否是通用 windows 应用程序的最佳实践,首先,我不知道如何在安装包之前编辑那个 XML 文件,或者安装后我不知道在哪里可以找到文件并在应用程序运行之前对其进行编辑。

问题很简单:这是不是最佳实践?如果是,我如何在部署前编辑该文件,请记住,相同的应用程序将安装在 100 台设备上,XML 文件将不同,如果否,最佳做法是什么?

我的做法是这样的:

我将在 RPi3 的 UWP 应用程序中嵌入一个 "Registration Function",当应用程序启动时,它会检测设备密钥是否保存在本地,如果没有,它将初始化注册过程,否则继续它应该做什么。

我将在 UWP 应用程序中嵌入用于注册的一般信息,当进程被触发时,它将连接到 Azure IoT Hub 以检索设备列表,并随机(不是那么随机)生成 "devicename" 和 "devicekey",将新生成的设备注册到 Azure IoT 中心。请记住将 "devicename" 和 "devicekey" 保存在您的树莓派中,以便您可以与设备通信。

我又做了一步,我将有一个 UI 用于 RPi3,当我将 RPi3 连接到显示器时,我可以选择 "reset" 设备,所以它将从 Azure IoT 中心 "delete" 和 "unregister" 本身重新启动注册过程。

希望这会有所帮助。

对 security/credentials 使用 TPM 因为这会从设备中提取连接凭据,一旦在设备上进行了配置,就不需要任何设备特定的编码(即无连接细绳)。 例如,在这段视频的一半左右: Channel9

我同意@Snake Chia

也许你可以试试这个做法:

在IOT HUB中共享一个设备,您只需要一组配置设置,因此部署应用程序时无需编辑配置文件。使用消息的一个数据字段来区分不同的传感器。在 Azure 端,Azure Stream Analytics 可以帮助您 process data from sensor devices.