Installation InstallScript设置源文件和目录

Installation InstallScript设置源文件和目录,installation,installshield,installscript,Installation,Installshield,Installscript,是否可以在InstallScript中定义一个脚本,该脚本将给定一个路径作为命令行编译器的参数,并在编译和构建安装程序之前查看该路径并从该路径获取要安装的文件 我们的目标是能够使用命令行(一个可以从发布文件夹安装文件的安装程序)构建,并且出于调试目的,可以从调试目录构建相同的文件(相同的名称) 我无法在安装设计器的应用程序数据部分中找到设置文件和文件夹的方法 谢谢我认为您可以使用自定义对话框和脚本来解决此问题 首先,将Release和Debug文件夹添加到文件和文件夹中。然后,创建一个带有两个选

是否可以在
InstallScript
中定义一个脚本,该脚本将给定一个路径作为命令行编译器的参数,并在编译和构建安装程序之前查看该路径并从该路径获取要安装的文件

我们的目标是能够使用命令行(一个可以从发布文件夹安装文件的安装程序)构建,并且出于调试目的,可以从调试目录构建相同的文件(相同的名称)

我无法在
安装设计器的
应用程序数据
部分中找到设置
文件和文件夹的方法


谢谢

我认为您可以使用自定义对话框和脚本来解决此问题

首先,将Release和Debug文件夹添加到文件和文件夹中。然后,创建一个带有两个选项的自定义对话框-释放和调试-并编写脚本,如果在自定义对话框中选择了释放,则删除调试文件夹;如果在自定义对话框中选择了调试,则删除释放文件夹。

简短回答 您可以使用path变量作为要安装的文件的配置相关变量位置(例如
install\u files\u path
),并在编译时设置其值

要在编译时设置path变量的值,请使用-例如:

ISCmdBld.exe -l INSTALL_FILES_PATH="C:\Blah\Blah\Blah"
<!-- ** Example 1 - a dynamic file link for DefaultComponent ** -->
<table name="ISDynamicFile">
    <col key="yes" def="s72">Component_</col>
    <col key="yes" def="s255">SourceFolder</col>
    <col def="I2">IncludeFlags</col>
    <col def="S0">IncludeFiles</col>
    <col def="S0">ExcludeFiles</col>
    <col def="I4">ISAttributes</col>
    <!-- * Notice the INSTALL_FILES_PATH path variable in the following file link. * -->
    <row><td>DefaultComponent</td><td>&lt;INSTALL_FILES_PATH&gt;</td><td>1</td><td>*.*</td><td/><td>2</td></row>
</table>

<!-- ** Example 2 - a support file link for Disk1 ** -->
<table name="ISDisk1File">
    <col key="yes" def="s72">ISDisk1File</col>
    <col def="s255">ISBuildSourcePath</col>
    <col def="I4">Disk</col>
    <!-- * Notice the INSTALL_FILES_PATH path variable in the following file link. * -->
    <row><td>NewDisk1File1</td><td>&lt;INSTALL_FILES_PATH&gt;\SomeFile.blah</td><td>1</td></row>
</table>
进一步解释 在您指定安装程序所需文件的项目组件或支持文件/公告牌视图中,文件的路径(在“链接到”列中)将利用path变量(如果在设计时指定文件时将其设置为有效值)。这是path变量的编译时值的关键,它会影响文件的查找位置

InstallShield GUI仅在Support Files/Billboards视图中明确了这一点(例如,显示
\SomeFile.blah
而不是
C:\blah\blah\blah\SomeFile.blah
),但您可以确认组件和支持文件/公告牌视图都利用了项目的
.ism
文件中的路径变量,例如:

ISCmdBld.exe -l INSTALL_FILES_PATH="C:\Blah\Blah\Blah"
<!-- ** Example 1 - a dynamic file link for DefaultComponent ** -->
<table name="ISDynamicFile">
    <col key="yes" def="s72">Component_</col>
    <col key="yes" def="s255">SourceFolder</col>
    <col def="I2">IncludeFlags</col>
    <col def="S0">IncludeFiles</col>
    <col def="S0">ExcludeFiles</col>
    <col def="I4">ISAttributes</col>
    <!-- * Notice the INSTALL_FILES_PATH path variable in the following file link. * -->
    <row><td>DefaultComponent</td><td>&lt;INSTALL_FILES_PATH&gt;</td><td>1</td><td>*.*</td><td/><td>2</td></row>
</table>

<!-- ** Example 2 - a support file link for Disk1 ** -->
<table name="ISDisk1File">
    <col key="yes" def="s72">ISDisk1File</col>
    <col def="s255">ISBuildSourcePath</col>
    <col def="I4">Disk</col>
    <!-- * Notice the INSTALL_FILES_PATH path variable in the following file link. * -->
    <row><td>NewDisk1File1</td><td>&lt;INSTALL_FILES_PATH&gt;\SomeFile.blah</td><td>1</td></row>
</table>

组成部分_
源文件夹
包括
包括玷污
排除文件
ISAttributes
DefaultComponentINSTALL\u文件\u路径1**2
ISDISK1文件
ISBuildSourcePath
磁盘
NewDisk1文件1安装\u文件\u路径\SomeFile.blah1

利用path变量的组件文件链接将“冒泡”到项目的文件和文件夹视图-即使InstallShield GUI不会显示太多(例如显示
C:\Blah\Blah\Blah\Blah\SomeFile.Blah
而不是链接到列中的
\SomeFile.Blah
,就像组件视图一样)。

谢谢,你能解释一下如何在脚本中修改文件和文件夹选项吗?我不明白。文件和文件夹选项是什么?你的想法是什么?我需要更多细节。我认为@Lablabla意味着如何在脚本中修改InstallShield GUI的文件和文件夹视图中设置的选项;但正如我在回答中所解释的那样,对于他想要达到的效果来说,这是不必要的;但是,如果像@Lablabla所描述的那样,安装调试文件还是发布文件是一个编译时决策,则没有必要这样做。