我构建了一个运行安装文件并在安装完成后自动修补它的应用程序。
我使用这个注册表键HLKM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall但有些应用程序没有这个键。
如何找到安装目录?
我构建了一个运行安装文件并在安装完成后自动修补它的应用程序。
我使用这个注册表键HLKM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall但有些应用程序没有这个键。
如何找到安装目录?
你可以使用system
和application
类。
Application.ExecutablePath
例如,您可以获得包含可执行文件的目录的全名,如下所示:
string executableName = Application.ExecutablePath;
FileInfo executableFileInfo = new FileInfo(executableName);
string executableDirectoryName = executableFileInfo.DirectoryName;
如果您使用 VS 安装项目作为安装程序,那么您可以使用自定义操作作为获取有关安装环境信息的一种方法。
话虽如此,我觉得可能有更好的方法来实现您的目标,并且通过更多信息,我认为我们可以帮助您实现目标。
编辑
我想我现在跟着你。如果我这样做,我将首先对我正在打包的每个第 3 方应用程序的默认设置位置进行硬编码。如果用户更改了默认值,将找不到它,因此提示他们输入新路径。请记住,您可以使用Environment.SpecialFolder来获取 Program Files(或其他系统文件夹)的实际位置,而不是假设 C:\。对于大约 99.9% 的安装和用户而言,此方法无需任何额外的用户交互即可完成。
另一种选择是为那些相反的第 3 方二进制文件创建自己的安装程序。当然你也必须维护更新,但听起来你已经在用你的补丁做类似的事情了。