我正在使用InstallShield 2014 Pro和C#自动化来通过TFS处理构建。我可以将其配置为build.exe并通过GUI从setup.exe中提取先决条件,但是当我通过代码执行时,它从不设置“InstallShield先决条件位置”。我很好,因为它是“从Setup.exe中提取”或“关注个人选择”。它总是默认为“从源媒体复制”,即使它是一种网络媒体格式....
以下是我为新创建的版本设置的设置:
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(在直接编辑器中)。它应该是1,但默认为0.如何改变它仍然是我的想法。
顺便说一句,我已经检查过所有的先决条件都设置为从setup.exe中提取。
答案 0 :(得分:0)
据我所知,你不能通过api设置这个值。
您可以手动编辑xml或二进制.ism文件来设置它,但是谁想要解决这个问题。我最简单的解决方法是始终重用具有字段集的版本。我们最初在安装盾中创建了一个新版本,因此需要设置该字段。由于该文件是受版本控制/标记的,因此返回旧版本没什么大不了的。