我使用Inno setup来构建应用程序安装程序。Inno Setup:自动启动应用程序时注册表设置不更新
在安装期间,我添加了一个注册表项,该注册表项提供了一个PATH,我将存储可能被多个不同应用程序(或同一应用程序的多个版本)使用的公用文件(dll等)。
我使用本文中提出的方法:http://www.codeguru.com/cpp/w-p/dll/article.php/c99/Application-Specific-Paths-for-DLL-Loading.htm
我的问题是,安装完成后,用户可以自动运行的应用程序。在这种情况下,应用程序无法在PATH位置找到dll。如果我关闭应用程序并从资源管理器重新启动它,它工作得很好。
我不想把文件放在标准的共享dll位置,它们不是所有的dll,我想要更好地控制我的应用程序正在使用的dll版本。此外,将文件放入应用程序安装.exe目录也不是一个选项。我也不想将PATH添加到系统环境路径中(即使我这样做,我怀疑我也可能会有同样的问题!)
任何想法?
我认为RTFM的情况! http://www.jrsoftware.org/ishelp/index.php?topic=registrysection 我在[run]部分使用了shellexec命令,它似乎解决了这个问题。 –
这是什么协议?删除问题?我认为这可能对像我这样的其他傻瓜有用。至少我认为关于应用程序特定路径的提示实际上非常有用,并且不会引用过于广泛。 –
我发布了错误的链接:http://www.jrsoftware.org/ishelp/index.php?topic=runsection “shellexec”标志运行程序“与用户双击时的方式相同资源管理器中的文件“。换句话说,它启动了一个新的过程,而不是安装程序的一个子进程,因此它启动了环境变化,我认为它符合你在答案中的内容。 –