Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inno setup 如何在inno安装程序中查找已安装目录?_Inno Setup - Fatal编程技术网

Inno setup 如何在inno安装程序中查找已安装目录?

Inno setup 如何在inno安装程序中查找已安装目录?,inno-setup,Inno Setup,我已经使用innosetup创建了一个安装程序。其中,用户可以通过设置DisableDirPage=No来选择要安装的目录,但当涉及到修补程序安装程序时,由于用户已将应用程序安装到其首选目录,因此无法更新。如何使安装程序识别应用程序已安装在哪个目录,并使修补程序安装程序工作 安装程序代码: [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program DefaultGroupName=My Program Uni

我已经使用innosetup创建了一个安装程序。其中,用户可以通过设置DisableDirPage=No来选择要安装的目录,但当涉及到修补程序安装程序时,由于用户已将应用程序安装到其首选目录,因此无法更新。如何使安装程序识别应用程序已安装在哪个目录,并使修补程序安装程序工作

安装程序代码:

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir = c:\test
OutputBaseFilename=update
DisableDirPage=No

[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"

如果我没看错你的话,你说的是你自己应用的setuo。您可以将
UsePreviousAppDir
指令放入
[Setup]
部分。它不是必需的,因为它的默认值无论如何都是“yes”。文档()说明安装程序正在查找相同的应用程序,该应用程序由
AppId
AppName
定义


只要像在示例代码中一样使用
AppName=My Program
,Inno安装程序就应该找到旧版本本身的安装路径。但是如果新版本中的
AppName
AppId
发生更改,则无法在注册表中找到它。如果每次设置都使用新的guid,则可能会更改
AppId

如果我没有正确理解您的意思,则您正在谈论自己应用程序的setuo。您可以将
UsePreviousAppDir
指令放入
[Setup]
部分。它不是必需的,因为它的默认值无论如何都是“yes”。文档()说明安装程序正在查找相同的应用程序,该应用程序由
AppId
AppName
定义


只要像在示例代码中一样使用
AppName=My Program
,Inno安装程序就应该找到旧版本本身的安装路径。但是如果新版本中的
AppName
AppId
发生更改,则无法在注册表中找到它。如果每次安装都使用新的guid,则可能会更改
AppId

这显然取决于您正在修补的应用程序(及其安装程序),您没有告诉我们。不过,请看,这显然取决于您正在修补的应用程序(及其安装程序),您没有告诉我们。不过,请看