1

由于某些依赖关系,我们在部分安装过程中关闭了 Windows 资源管理器。作为紧急安全措施,如果我们失败,我想确保用户有一个外壳。我以为我想做一个带有 'Execute="rollback"' 的 34 类自定义操作,但我似乎不够聪明来制作 CA。

这是我所拥有的:

<CustomAction Id="RestartExplorer"     
   ExeCommand="explorer.exe"
   Execute="rollback"
   Impersonate="yes"
   Return="asyncNoWait"/>

我知道我缺少一个目录元素,但我不知道如何指定一种与平台无关的方式来指定 %windir%\system32。使用环境变量或脚本不是一种选择。

谢谢 :)

4

2 回答 2

1

我从来没有在安装过程中试图杀死 Explorer。不是自动重启吗?如果在安装时它重新启动怎么办?

否则,如果我这样做了,我会使用QuietExec 自定义操作启动它。

您还希望在 InstallFinalize 之后立即将其作为自定义操作启动。注意我没有说提交,因为可以禁用回滚并且提交不会执行。

SystemFolder属性也是您正在寻找的。确保在 32 位和 64 位机器上进行测试。

于 2012-10-04T22:57:31.020 回答
0

在我能想到的任何情况下,杀死探险家都是错误的。我没有重新启动资源管理器,而是修复了我们的 shell 扩展中的错误;)谢谢你的帮助

于 2012-10-15T20:30:29.780 回答