2011-11-09 47 views
2

我有一个Visual Studio安装程序与用C++编写的自定义操作。我需要从一个自定义操作启动一个进程,但“安装”和“提交”操作都会提升,因此我的进程也会提升。我希望新进程以普通用户身份运行。微星C++自定义操作与非管理员权限

我看过Start exe after msi install but using current user privileges但它看起来过于复杂,并显示没有代码。我没有时间去尝试一个未知的API。

有没有简单的方法?我可以使用VS安装程序来定义非提升的自定义动作或从提升的自定义动作中执行某些操作吗?

回答

1

Visual Studio安装项目不支持即时自定义操作。它们全都是deferred

因此,无论是使用自定义代码来模拟当前用户,还是切换到另一个支持即时操作的安装创作工具。

+0

谢谢!我知道我早晚会遇到安装项目的限制。使用VS安装项目非常简洁,但我认为它仅适用于非常基本的场景。我决定使用自定义引导程序来实现我的目标,并且这很有效。 – wpfwannabe

2

如果你只是想测试你的代码,用Orca更新你的内置msi文件并不难。它会让你将你的代码添加到二进制表的dll,添加一个相应的行到customaction表,并添加到一个序列的行动。

如果您需要这种情况发生作为您的构建过程的一部分,您可以用vbscript完成同样的事情。该SDK附带了用于与msi数据库进行交互的良好示例vbscript代码,如下所述: http://msdn.microsoft.com/en-us/library/windows/desktop/aa372865%28v=vs.85%29.aspx

+0

谢谢埃德。不,我不想使用Orca。我需要集成构建。手动操作会非常繁琐。我会看看样品,看看他们是否可以做我想做的。同时,我已经恢复使用自定义引导程序来完成我最初想要的操作。 – wpfwannabe