cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
JohnDoe
Level 3

Major upgrade on Vista

I'm having problems running a major upgrade on Vista. I've included FLEXnet Connect in our release, and get a error message during upgrade:
The File 'agent.exe.6ED28686_7B19_420C_B255_5B6C1BD2C705' is not marked for installation.


If I right click on the setup.exe and choose run as administrator it runs through perfectly. :confused:

Any suggestions here?
Labels (1)
0 Kudos
(1) Reply
JohnDoe
Level 3

The issue is now resolved, turned out that this problem is cause by a bug in InstallShield 2008 which leaves the MSI on the user’s computer corrupt. Acresso have released a hotfix to deal with the issue: http://kb.acresso.com/selfservice/viewContent.do?externalId=Q113652&sliceId=1

In order to solve this problem I needed to apply the hotfix to IS2008 and build a patch that I run in the UI Sequence of my Major Upgrade. This Major Upgrade is built on IS2009. I needed to create a custom action before the user interface in the UI Sequence, but since we have a chain of patches this wasn't a very good solutions for us. However, this lead me to understand the issue better, and I ended up creating a VBScript that uninstalls the product before the user interface in the UI Sequence. Worked like a charm 🙂

Here is the VBScript for those who are interested:

Option Explicit
Dim msiObject, msiProduct, msiProdVersion, appName, CommandShell, cmdline
Const msiInstallStateDefault = 5

appName = Session.Property("ProductName")

Set msiObject = CreateObject("WindowsInstaller.Installer")

For Each msiProduct In msiObject.Products
msiProdVersion = CLng(msiObject.ProductInfo(msiProduct, "Version"))
msiProdVersion = (msiProdVersion\65536\256) & "." & (msiProdVersion\65535 MOD 256) & "." & (msiProdVersion Mod 65536)

if msiObject.ProductInfo(msiProduct, "ProductName") = appName then
if msiProdVersion < "6.7" then
set CommandShell = CreateObject("WScript.shell")

cmdline = "msiexec /X " & msiProduct & " /qb-"
CommandShell.run cmdline, 1, true
end if
END IF

Next
0 Kudos