是否可以在InstallScript
中定义一个脚本,该脚本将路径作为命令行编译器的参数,在编译和构建安装程序之前,将查看该路径并从那里获取要安装的文件?
目标是能够使用命令行构建,可以从release文件夹安装文件的安装程序,以及用于调试目的的相同文件(相同名称)但来自调试目录
我找不到在Files and Folders
Application Data
部分设置Installation Designer
的方法
由于
答案 0 :(得分:0)
我认为您可以使用自定义对话框和脚本来解决此问题。
首先,将Release和Debug文件夹添加到文件和文件夹。然后,创建一个包含2个选项的自定义对话框 - Release和Debug - 并编写一个脚本以删除Debug文件夹,如果在自定义对话框中选择了Release 或删除Release文件夹,如果在自定义对话框。
答案 1 :(得分:0)
您可以将路径变量用于要安装的文件的配置相关的可变位置(例如INSTALL_FILES_PATH
)并在编译时设置其值。
要在编译时设置路径变量的值,请使用ISCmdBld.exe
's -l <path variable>="new path"
command-line parameter - 例如:
ISCmdBld.exe -l INSTALL_FILES_PATH="C:\Blah\Blah\Blah"
在项目的“组件或支持文件/广告牌”视图中,您可以在其中指定安装程序所需的文件,文件&#39; paths(在“链接到”列中)将利用路径变量(如果在设计时指定文件时将其设置为有效值)。 这是路径变量的编译时值的关键,它影响了查找文件的位置。
InstallShield GUI仅在支持文件/广告牌视图中明确说明(例如显示<INSTALL_FILES_PATH>\SomeFile.blah
而不是C:\Blah\Blah\Blah\SomeFile.blah
),但您可以确认组件和支持文件/广告牌视图都利用了项目&#39; .ism
文件中的路径变量 - 例如:
<!-- ** 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><INSTALL_FILES_PATH></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><INSTALL_FILES_PATH>\SomeFile.blah</td><td>1</td></row>
</table>
利用路径变量的组件文件链接将会#34;冒泡&#34;到你的项目的文件和文件夹视图 - 即使InstallShield GUI不会显示那么多(例如在链接到列中显示C:\Blah\Blah\Blah\SomeFile.blah
而不是<INSTALL_FILES_PATH>\SomeFile.blah
- 就像组件视图一样)。