我们有一个构建脚本,它构建了三种类型的项目 - C ++,Java,最后是各自的InstallShield安装程序。
现在,安装程序构建脚本依赖于C ++项目始终在Release配置中构建的事实。
但现在我希望允许在其他配置中构建它们,即Profile。
我们正在使用Jenkins CI服务器,因此通过专用的Jenkins构建参数DRIVER_PROXY_CONFIG
提供所需的配置,该参数表示为具有相同名称的环境变量。
现在问题。根据我们的InstallShield人员,IS不能在源文件路径的一部分中使用环境变量。我引用:
您可以使用或'环境变量'或'用户定义的路径变量 通过InstallShield'作为文件路径定义。
所以我们可以:
- 为每个组件创建'环境变量'(因为'DRIVER_PROXY_CONFIG'只是组件路径的一部分) - 不可取。
- 使'环境变量'成为组件'用户定义的路径变量'的一部分 - 不可能,我刚刚尝试过。
醇>
有人做过这样的事吗?安装程序依赖于不同位置的多个源文件,其中此类位置路径的一部分是DRIVER_PROXY_CONFIG
环境变量的值。请注意,此部分既不是路径前缀也不是后缀。
答案 0 :(得分:2)
迈克尔:
如果'env'不是路径的前缀或后缀("SomeDir\<env>\SubDir"
)怎么办?
我创建了系统env config=release
我创建了IS变量'MyConf',它引用了env'config'
我创建了IS标准路径MyPath = "SomeDir\<MyConf>\SubDir"
如果我从此路径添加文件 - IS不会将“MyPath”建议为建议路径!!!
我找到的唯一方法是添加文件,然后直接访问File表来更新ISBuildSourcePath。
答案 1 :(得分:1)
您绝对可以将其创建为路径的一部分。一些确切的行为确实取决于InstallShield的版本,但对于最后几个,您甚至可以使用相对父目录。只需转到Path Variables视图,添加一个新的环境路径变量(比如Env
),并设置它引用的环境变量。然后添加定义为Stn
的任意数量的标准路径变量(例如<Env>\Sub\Dir
),或者跳过此步骤并仅引用相关文件的ISBuildSourcePath
。通常,从定义的路径变量下的路径添加文件将使用该路径变量作为其路径的一部分。
如果您已经添加了文件,转换源路径向导可能会对此有所帮助,但您可能会发现直接访问File表以更新ISBuildSourcePath
然而,至少有一个例外。如果您的环境变量的值为Sub
,而您的完整目录名称为SubDirectory
,则无法始终引用<Env>Directory
。通常,路径变量支持会将其转换为Sub\Directory
。
答案 2 :(得分:0)
我将环境变量添加为路径变量,你可以在这里设置环境变量类型(不是字符串类型!)
然后你可以在任何你使用路径变量的地方使用它 - 虽然我必须将它括在方括号中而不是通常的角度变量中。它应该在路径中间工作,就像我使用普通路径变量一样。