Path Inno设置(如何动态获取文件路径)?

Path Inno设置(如何动态获取文件路径)?,path,installation,inno-setup,dynamically-generated,Path,Installation,Inno Setup,Dynamically Generated,我正在用Inno制作一个安装脚本,我想知道,如何才能得到非“硬编码”的路径。下面是一个例子: 提前谢谢 解决方案: 您可以使用预定义变量获取.iss文件夹 源路径 用法如下:{#SourcePath}\??\bin\x86\Release\??.exe 感谢所有贡献者 关于这本书的参考书(我强调): 默认情况下,安装编译器希望找到脚本的[files]部分源参数中引用的文件和引用的文件 在[Setup]部分中,脚本文件位于同一目录下 如果路径名不包含完全限定的路径名,则可以找到该路径名。指明 在

我正在用Inno制作一个安装脚本,我想知道,如何才能得到非“硬编码”的路径。下面是一个例子:

提前谢谢

解决方案:

您可以使用预定义变量获取.iss文件夹

源路径

用法如下:{#SourcePath}\??\bin\x86\Release\??.exe

感谢所有贡献者

关于这本书的参考书(我强调):

默认情况下,安装编译器希望找到脚本的[files]部分源参数中引用的文件和引用的文件 在[Setup]部分中,脚本文件位于同一目录下 如果路径名不包含完全限定的路径名,则可以找到该路径名。指明 在不同的源目录中,在 脚本的[设置]部分

这还包括指定文件相对路径的选项。因此,假设您具有以下文件结构,并且没有在指令中指定其他路径:

C:\Deploy\Script.iss
C:\Deploy\MyProg.exe
C:\Deploy\SubFolder\MyOtherProg.exe
C:\Folder\SomeFile.txt
现在,如果您想将
MyProg.exe
包含到从
Script.iss
脚本编译的设置中,您可以只指定文件名而不指定路径,因为
MyProg.exe
文件存储在与脚本相同的文件夹中,因此您可以只编写:

[Files]
Source: "MyProg.exe"; DestDir: "{app}"
您可以使用
MyOtherProg.exe
的相对路径,该路径存储在
Script.iss
脚本以以下方式存储的文件夹的子文件夹中:

[Files]
Source: "SubFolder\MyOtherProg.exe"; DestDir: "{app}"
此外,您还可以使用相对路径包含存储在脚本所在父文件夹子文件夹中的
SomeFile.txt

[Files]
Source: "..\Folder\SomeFile.txt"; DestDir: "{app}"

有关相对路径约定的更多信息,您可以在中阅读。

正如OP在自己的问题中所说

您可以使用预定义变量获取.iss文件夹

SourcePath

用法如下:
{SourcePath}\??\bin\x86\Release\??.exe


\define MyAppName“myapp”\define MyAppExeName“myu APP.exe”[Files]来源:{userdesktop}{MyAppName}\SOURCES.PROJECTS\???\ \Release\{MyAppExeName}
@RobeN如果我从其他计算机运行此脚本,并假设文件夹不在桌面上,这将无法正常工作?
{userdesktop}
constant始终指向当前用户的真实桌面-无论安装了何种语言版本的Windows。在波兰语中,它将是例如
C:\Użytkownicy\MOJżU PROFIL\Pulpit
是的,我理解@RobeN。现在我问你,如何获得脚本文件夹。假设我的安装脚本(.iss->script)位于桌面/SOURCES.PROJECTS/???/InstallScript.iss中。现在我想实现“桌面/源代码.项目/???/”。我已经在这里找到了一个解决方案,但它对我不起作用。谢谢。这里不需要预处理器变量。您可以使用相对路径。