0

我正在使用 InstallShield 2014 Pro 和 C# 自动化通过 TFS 处理构建。我可以将其配置为构建为 setup.exe 并通过 GUI 从 setup.exe 中提取先决条件,但是当我通过代码执行此操作时,它从不设置“InstallShield Prerequisites Location”。我很满意它是“从 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 中提取。

4

1 回答 1

0

据我所知,您无法通过 api 设置此值。

您可以手动编辑 xml 或二进制 .ism 文件来设置它,但谁愿意经历这个麻烦。我采用的最简单的修复方法是始终重用具有字段集的版本。我们最初是在 install shield 创建一个新版本,因此需要设置该字段。由于该文件是受版本控制/标记的,因此返回旧版本没什么大不了的。

于 2015-07-30T19:01:50.473 回答