从维克斯高架安装运行unelevated自定义动作(Run unelevated custom ac

2019-10-19 05:24发布

我试图找出如何运行从提升维克斯安装设置程序自定义操作。 通过维克斯生成​​MSI文件由DotNetInstaller执行。

在WiX的我有InstallScope设置为perMachine这个自定义操作一个Package部分:

<CustomAction Id='RegisterPlugin' FileKey='RegisterPluginExe' ExeCommand='' Return='asyncNoWait' Impersonate='yes' />

<InstallExecuteSequence>
  <Custom Action='RegisterPlugin' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>

冒充设置为yes应该运行的操作exe文件谁运行DNI引导程序的用户。 自定义操作应阅读用户应用程序数据目录中的文件,使用System.Windows.Forms.Application.LocalUserAppDataPath得到的值,但使用的目录就是错误的,因为是管理员用户的一个。

我试图用一个清单来运行DNI unelevated,但问题仍然存在。 如果我直接运行MSI,它正确确实需要管理权限一些注册表操作,而自定义操作运行正常。

编辑:看任务管理器,我可以看到,如果MSI从DNI执行,当MSI启动用户成为管理员。 如果我直接运行MSI,用户始终是相同的,即使是在对系统目录下的文件安装。 看来,在这种情况下,什么样的变化不是身份,而是特权。

有任何想法吗?

谢谢,施特尼奥

文章来源: Run unelevated custom action from a WiX elevated installer