Jan*_*ck7 6 installer inno-setup path dynamically-generated
我正在Inno制作一个设置脚本,我想知道,我怎么能得到非"硬编码"的路径.这是一个例子:

提前致谢!
解:
您可以使用预定义变量获取.iss文件夹
SOURCEPATH
用法如下:{#SourcePath}\???\bin\x86\Release\???.exe
谢谢所有贡献者!
TLa*_*ama 12
关于source directory说的参考(由我强调):
默认情况下,如果脚本文件不包含完全限定的路径名,则安装编译器需要查找脚本的[Files]部分中的引用参数以及[Setup]部分中引用的文件,这些文件位于脚本文件所在的同一目录下.要指定其他源目录,请在脚本的[Setup]部分中创建SourceDir指令.
这还包括指定文件的相对路径的选项.因此,假设您具有以下文件结构,并且未在SourceDir指令中指定其他路径:
C:\Deploy\Script.iss
C:\Deploy\MyProg.exe
C:\Deploy\SubFolder\MyOtherProg.exe
C:\Folder\SomeFile.txt
Run Code Online (Sandbox Code Playgroud)
现在,如果您想要包含在MyProg.exe从Script.iss脚本编译的设置中,您可以只指定没有路径的文件名,因为该MyProg.exe文件存储在与脚本相同的文件夹中,因此您可以只写:
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
并且您可以使用MyOtherProg.exe存储在以Script.iss这种方式存储脚本的文件夹的子文件夹中的相对路径:
[Files]
Source: "SubFolder\MyOtherProg.exe"; DestDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
除了可以使用相对路径来包含SomeFile.txt存储在存储脚本的父文件夹的子文件夹中:
[Files]
Source: "..\Folder\SomeFile.txt"; DestDir: "{app}"
Run Code Online (Sandbox Code Playgroud)
有关您可以阅读的相对路径约定的更多信息this chapter.