如何在安装时将加密值写入Registry

时间:2012-11-30 16:21:40

标签: visual-studio-2010 windows-installer

在安装过程中,我想创建一个包含安装日期的加密字符串,并将其写入注册表项。

我知道如何在代码中创建加密字符串,所以我不需要加密部分的帮助,我只是不知道如何让安装程序:

  • 以字符串
  • 获取今天的日期
  • 在其上调用我的加密方法(来自dll)
  • 如果该值尚不存在(不覆盖)
  • ,则将结果写入注册表项

我怎么能这样做?

戴夫

1 个答案:

答案 0 :(得分:0)

如果您使用的工具暴露了更多基础Windows安装程序(如WiX或InstallShield),您可以编写一个简单的自定义操作,获取时间,加密并设置属性。然后,您将在Registry表中使用该属性,让安装程序在安装期间将其写出,在回滚期间将其删除并在卸载期间将其删除。

但是,您正在使用的项目类型(并从VS2012 FWIW中删除)不支持在即时执行上下文中创建自定义操作,因此自定义操作无法设置属性以供Registry表使用。

这意味着您必须自己编写RollBack,安装和卸载自定义操作并自行写入注册表值。

我还提到InstallUtil自定义操作有各种缺点。我在C ++中执行此操作,或者使用WiX DTF编写一个C#自定义操作,该操作对安装程序显示为C ++ DLL。