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

C# 如何在通用Windows应用程序中使用配置设置,c#,raspberry-pi,uwp,windows-10-iot-core,azure-iot-hub,C#,Raspberry Pi,Uwp,Windows 10 Iot Core,Azure Iot Hub,我有一个通用windows应用程序,它部署到具有windows iOT核心的Raspberry PI 3上,PI 3可以连接多个传感器,因此这些传感器需要在Azure iOT Hub上注册,为此,我使用设备资源管理器手动注册,然后在我创建的XML文件上注册,我输入了设备密钥和其他配置设置 通过这种方式,PI可以使用配置文件中的DeviceKey和传感器读数,然后将数据发送到IOT集线器 小菜一碟它很好用 但是,我不知道这种配置方式是否是通用windows应用程序的最佳实践,首先,我不知道在安装软

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

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

小菜一碟它很好用

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

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

我的做法是:

我将在RPi3的UWP应用程序中嵌入一个“注册功能”,当应用程序启动时,它将检测devicekey是否保存在本地,如果不是,它将初始化注册过程,否则它将继续它应该做的事情

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

我又做了一步,那就是,我将有一个RPi3的UI,当我将RPi3连接到监视器时,我可以选择“重置”设备,因此它将从Azure IoT Hub“删除”和“注销”自身,并再次启动注册过程


希望这会有所帮助。

使用TPM进行安全/凭据,因为一旦在设备上进行配置,就可以从设备中提取连接凭据,而无需任何特定于设备的编码(即无连接字符串)。 例如,在本视频中,大约进行了一半: 我同意@

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


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

我可以将TPM与build 14931一起使用吗?