我在 vs 2008 中创建了一个 Web 设置项目并添加了一些自定义操作。在安装时,我得到了默认表单(apppool、appname、网站)、一些预定义的自定义表单和一些自制的自定义表单。现在,在安装时,我在注册表中添加了一些数据。
我只有一个问题:TARGETSITE 属性。此属性由默认表单填充(Context.Parameters["TargetSite"] 类似于 defaultWebSite 的 "/LM/W3SVC/1"),并且其值已正确添加到注册表中。在我使用修复功能之前一切都很好...
在修复过程中,安装会跳过前几个默认表单,因此 TARGETSITE 属性将为空(Context.Parameters["Targetsite"] 为 "")。可悲的是,我无法干预从注册表中获取所需的值,我正是出于这个原因添加了它。因为注册表值将在“覆盖安装”方法中触发自定义代码之前更新。甚至在更新注册表后也会触发 onBeforeInstall。
如果完成回滚,在修复时,注册表项将被重置为之前的正确值,所以我必须相信,我可以以某种方式从我的自定义操作代码中访问这个值。
有人对如何获得这个重要价值有任何建议吗?
PS:我尝试在注册表项中设置条件,这样它只会在 TARGETSITE 值不为空时更新,但我担心这会被忽略很多时间......注册表项中的 TARGETSITE != ""条件场绝对没有任何效果......