编辑:
没有更长的相关性。由于Installshield的困难不仅包括这个问题,还包括在Visual Studio中使用项目构建它的问题,以及无法替换需要替换的旧文件之一,我现在正在用C#编写安装程序。我应该早点这样做,因为我现在已经完成了。感谢Christopher Painter和Michael Urman试图引导我解决这个问题。不幸的是,我没有进一步了解它。
以下的原始帖子
老实说,这就像拔牙一样。我希望我错过一些明显的东西。我一直试图让Installshield让我将INSTALLDIR设置为环境变量。这是必要的,因为公司的工作方式。我知道我可以通过调用MSI并通过参数传递文件夹的批处理文件在安装程序之外设置它,但该解决方案最终导致了一个不友好的MSI。如果有人有任何内部解决方案,请告诉我。
答案 0 :(得分:1)
Windows Installer具有环境视图和组件中由InstallShield公开的Environment表高级设置|环境观。
答案 1 :(得分:1)
Windows Installer允许您使用属性表示法的变体引用环境变量。我建议an approach similar to RobertDickau's,您可以提前使用设置属性自定义操作从INSTALLDIR
设置[%SOMEVAR]
。仅在尚未定义INSTALLDIR
时才运行自定义操作,以便人们可以在命令行覆盖INSTALLDIR
。请注意,这必须在成本计算之前运行,或者您必须找到不同的条件并使用set-directory操作(如Robert提及)。