【发布时间】:2011-10-18 06:18:29
【问题描述】:
如何将文件添加到 InstallShield 组件,指定 InstallShield 项目的相对路径,以便在不同机器上轻松编译项目?
【问题讨论】:
标签: windows-installer installshield filepath
如何将文件添加到 InstallShield 组件,指定 InstallShield 项目的相对路径,以便在不同机器上轻松编译项目?
【问题讨论】:
标签: windows-installer installshield filepath
您可以使用 <path variables>(see documentation - 从 Wayback 复活,2018 年 8 月)将所有文件指向它们。
另见this blog post。
【讨论】:
使用免费的 VS 限量版 InstallShield,似乎无法设置自定义路径。因此,只有几个预定义的路径选项可用,可能需要破解 ISL 文件。
这是我在 2013 Express 文档中找到的预定义路径变量:(验证是否有错别字)
Predefined Path Variable Value InstallScript Path Variable
--------------------------------------------------------------------------------------------------------------
<ProgramFilesFolder> C:\Program Files\ <PROGRAMFILES>
<CommonFilesFolder> C:\Program Files\Common Files\ <COMMONFILES>
<WindowsFolder> C:\Windows\ <WINDIR>
<SystemFolder> C:\Windows\System32\ <WINSYSDIR>
<ISProjectFolder> C:\InstallShield 2013 Projects\
<ISProjectDataFolder> <ISProjectFolder>\ProjectName <ISPROJECTDIR>
<ISProductFolder> C:\Program Files\InstallShield\2013
<ISRedistPlatformDependentFolder> C:\Program Files\InstallShield\2013\
.\Redist\Language Independent\i386
<ISRedistPlatformDependentExpressFolder> C:\Program Files\InstallShield\2013\
.\Redist\Language Independent\
.\i386 Express
我的 VS 解决方案包括 Outlook AddIn 和 InstallShield LE 安装项目。尽管 InstallShield 包含了 AddIn 生成的输出和相关程序集,但清单和 vsto 文件均未包含在内。所以我需要单独指定这些。这适用于一个工作站;但是,另一个共享该解决方案的工作站具有不同的源目录结构,提供了未解析的源。
清单和 vsto 文件是由 InstallShield 使用绝对路径添加的。所有工作站通用的符号链接可以解决这个问题,但我决定破解 ISL 文件,看看是否可以使用实现 ISL 文件的相对路径将来可能需要维护破解。
为了获得公共父目录(即在我的例子中的解决方案目录),我在 ISL 中为 其中 HTML 实体用于 我使用 到目前为止,事情似乎正在正确解决,但您的相对性可能会有所不同。 【讨论】:。
...<td><ISPROJECTDIR>..\..\MyProject\bin\Release\...
...<td><ISPROJECTFOLDER>..\MyProject\bin\Release\...
如果您的“源文件”的磁盘分区与
【讨论】:
回到您的项目并确保您要复制的所有文件都具有属性: 构建动作=内容 和 复制到输出目录=始终复制
【讨论】:
<ISProjectFolder> 是包含 Install Shield 项目的目录的宏。
(在此页面上更容易获得答案...)
【讨论】:
当您添加文件时,您应该尝试使其与 installshield 项目文件相关。如果您将 .ism 文件保留在源代码树中,那么您添加的任何可执行文件都应该具有相对于该文件的路径。
【讨论】: