我正在尝试构建.Net Windows应用程序或服务。我想使用Visual Studio安装程序模板创建一个安装项目。当有人在他们的机器上安装这个应用程序或服务时,我想要在安装期间/之后生成一个唯一ID,并将其永久存储在某个地方(可能是注册表)。
如果我重新安装它,则不应重新生成唯一ID,因为我可能会发布未来版本。我需要app / service可以读取该ID才能使用该ID与Server进行通信。
每台机器生成此唯一ID的最佳方法是什么?
答案 0 :(得分:1)
作为一个选项,您可以为您的设置项目创建Custom Action。
创建一个类库项目,并从Add New Item窗口添加Installer Class。
覆盖安装,提交,回滚和卸载或方法之前和之后的相关内容。
使用注册表存储您需要的密钥。在安装方法中,检查特定注册表项是否不存在然后创建它,例如HKEY_CURRENT_USER\Software\YourSofteare
创建一个字符串键并将其命名为ClientId并生成一个唯一的ID,如GUID并将其存储在注册表中。如果密钥存在,请不要触摸它。
您可以在程序中使用此密钥,只需在程序启动时从注册表中读取此密钥。
我已经使用此类自定义操作在安装过程中执行自定义操作。