2015-06-26 80 views
0

我正在使用InstallShield 2014 Pro和C#自动化通过TFS处理构建。我可以将它配置为setup.exe并通过GUI从setup.exe提取prereq,但是当我通过代码执行时,它从不设置“InstallShield先决条件位置”。我很好,它是“从Setup.exe提取”或“遵循个人选择”。它总是默认为“复制从源媒​​体”,尽管它是一个网络媒体格式....如何设置“InstallShield先决条件位置”?

这是我为新创建的发布设置的设置:

m_Release.Compressed = true; 
m_Release.MediaType = 4; 
m_Release.SetupEXE = true; 
m_Release.MSIEngineLocation = ISWiEngineLocation.eelSetupExe; 
m_Release.MsiEngineVersion = ISWiMSIEngineVersion.eev31; 
m_Release.DotNetVersion = ISWiDotNetVersion.env11; 
m_Release.DotNetFrameworkLocation = ISWiDotNetFrameworkLocation.dnlSetupExe; 
m_Release.WebType = ISWiWebType.ewtOneExe; 
m_Release.DelayMSIEngineReboot = false; 

除非我失去了它,在帮助中没有这个选项:http://helpnet.installshield.com/installshield21helplib/installshield21helplib.htm

我相信我至少已将其缩小到ISRelease中的ISSetupPrerequisiteLocation(在Direct Editor中)。它应该是1,但默认为0.如何改变它仍然躲过我。

顺便说一句,我有三重检查,所有的先决条件都设置为从setup.exe提取。

回答

0

据我所知,你不能通过api设置这个值。

您可以手动编辑xml或binary .ism文件来设置它,但是谁想要解决这个问题。我随之而来的最简单的修复方法是始终重新使用已设置字段的版本。我们最初在安装屏蔽时创建了一个新版本,因此需要设置该字段。由于该文件是受版本控制/标记的,因此返回旧版本没什么大不了的。

相关问题