我正在尝试从另一个进程运行Inno设置,如下所示。
ProcessStartInfo pstart = new ProcessStartInfo(@"setup.exe");
pstart.UseShellExecute = false;
pstart.EnvironmentVariables.Add("SomeKey", "SomeValue");
Process.Start(pstart);
但是,似乎没有拾取[Process]环境变量(在该进程上设置的环境变量)。似乎只选择了[User / Machine]环境变量。
我将变量用作:{%SomeKey | Fallback}
当尝试使用[Process]环境变量时,它总是使用后备。
Inno用于ShellExecute
以提升的权限重新启动自身(PrivilegesRequired=admin
默认情况下-并且安装程序尚未以管理员权限运行时)。结果,“真实”安装程序的父进程是外壳程序,而不是您的应用程序,因此它不能从中继承环境变量。
您应该改用命令行参数或/loadinf
-style响应文件。
如果您非常希望环境变量能够通过,那么您可以尝试自己以提升的权限启动它(可能通过助手应用程序)。但是请记住,这样做会禁用某些标准功能,例如runasoriginaluser
(默认情况下在postinstall
[Run]
条目上使用)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句