lea*_*tes 6 installation installer windows-installer
我很难找到有关stateSaver/savedState Dictionary如何为Windows Installer工作的文档,在Install和UnInstall覆盖中,有人可以提供帮助.
在我的安装程序CustomAction中,我一直在写入注册表项,每次我都会向stateSaver添加一些细节.我曾经假设在卸载时考虑到这一点但是如何?
我认为在安装时会将stateSaver字典写入文件,在卸载时会读取该文件的内容,读取.InstallState并用于安装它找到的条目.
我的问题是卸载后仍然存在一些注册表项,我不知道为什么以及我对字典如何工作缺乏了解并没有帮助.
这是Install正在做的事情的一个例子
RegistryKey expressionEvaluatorVersionKey = expressionEvaluatorKey.CreateSubKey(packageVersion);
Run Code Online (Sandbox Code Playgroud)
这是为Windows Installer添加的密钥创建子密钥.如何在卸载中删除此子密钥?
我不确定 installState 是你的问题。这只是一个包含各种键值对的文件,我不认为其中有任何智能。
在我看来,(内置)卸载程序进程可能会说“我需要删除此密钥,但它不是空的,因此我要保留它”。
您能否将所有注册表项/条目创建(以及暗示所有项/条目删除)放入自定义操作 dll 中?
我在 installState 中发现的另一个问题(这就是我试图避免它的原因)是,人们并不知道会出现并删除 installState 文件。根据您编写卸载自定义操作的方式,这可能意味着您永远无法彻底卸载程序,因为当您尝试读取字典中缺少的内容时,您会遇到异常。
既然您似乎已经在使用自定义操作 dll 来完成这项工作,希望我的建议不会那么繁重?
| 归档时间: |
|
| 查看次数: |
1373 次 |
| 最近记录: |