我的安裝程序需要重新分配.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