我的安装程序需要重新分配.NET框架,但我不想有一个setup.exe包装,所以我写了一个自定义操作来启动.NET的Web安装程序最终用户机器尚未拥有它。这适用于.NET 4.0和.NET 3.5,但对于.NET 4.5,.NET安装程序报告“等待另一个安装完成”并失败 - 如果我的自定义操作位于Exec序列中,此错误消息将正确我特别将它放在UI序列的早期,以允许嵌套安装。InstallShield与.NET 4.5嵌套安装
完全相同的配置的InstallShield /代码工作正常使用.NET 3.5和.NET 4.0,但失败,.NET 4.5,我使用的是微软的标准Web安装程序: http://www.microsoft.com/en-ca/download/details.aspx?id=30653
有谁知道任何解决方案还是解决这个问题?
下面是我的自定义操作的代码:我很惊讶,.NET 4.0和3.5也不像这个工作
if (hasDotNET45 = FALSE) then
MessageBox("Missing .NET 4.5 framework!", INFORMATION);
LAAW_SHELLEXECUTEVERB = "runas";
LaunchApplication(szSupportDir^"\\dotNetFx45_Full_setup.exe", "", "", SW_SHOWNORMAL, 100000, LAAW_OPTION_USE_SHELLEXECUTE | LAAW_OPTION_WAIT_INCL_CHILD);
Delay(333);
endif;
自定义操作那叫一个msi是janky ...你想链msis – thekbb 2013-12-14 04:12:54
如何链msis? – godblessfq 2015-11-29 16:45:29
如前所述,MSIs不应该(不容易)嵌套。但由于某些原因,许多人从用户序列中启动了prereq MSI,而且这种方式通常很好。如果这是“嵌套”,取决于观点。主要的缺点是你无法静静地运行这个设置 - 你依赖于确切的对话模式。如果这是可以接受的,我看不出有什么理由要告诉所有人,这很糟糕 - 这很容易,而且很有效。只有像.NET 4.5这样的一些设置不仅测试常见的MSI互斥量,还有更多。所以这里需要解压缩这个解决方法。 – Philm 2016-02-15 10:39:20