我试图找出如何运行从提升维克斯安装设置程序自定义操作。 通过维克斯生成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,用户始终是相同的,即使是在对系统目录下的文件安装。 看来,在这种情况下,什么样的变化不是身份,而是特权。
有任何想法吗?
谢谢,施特尼奥