在安装期间,我想创建一个包含安装日期的加密字符串并将其写入注册表项。
我知道如何在代码中创建加密字符串,所以我不需要加密部分的帮助,我只是不知道如何让安装程序:
- 获取今天的日期作为字符串
- 调用我的加密方法(来自 dll)
- 如果值不存在,则将结果写入注册表项(不覆盖)
请问我该怎么做?
戴夫
在安装期间,我想创建一个包含安装日期的加密字符串并将其写入注册表项。
我知道如何在代码中创建加密字符串,所以我不需要加密部分的帮助,我只是不知道如何让安装程序:
请问我该怎么做?
戴夫
如果您使用的工具会暴露更多底层 Windows 安装程序(例如 WiX 或 InstallShield),您将编写一个简单的自定义操作来获取时间、对其进行加密并设置属性。然后,您将使用注册表中的该属性让安装程序在安装期间将其写出,在回滚期间将其删除并在卸载期间将其删除。
但是,您正在使用的项目类型(并从 VS2012 FWIW 中删除)不支持在即时执行上下文中创作自定义操作,因此自定义操作无法设置注册表表使用的属性。
这意味着您必须自己编写回滚、安装和卸载自定义操作,并自己写入注册表值。
我还要提到 InstallUtil 自定义操作有很多缺点。我会在 C++ 中执行此操作,或者我会使用 WiX DTF 编写一个 C# 自定义操作,该操作显示为安装程序的 C++ DLL。