views:

55

answers:

1

After converting the solution to vs2008 from 2005, my msi started behaving differently.

Not all the dlls get ovewritten and if I launch the msi from another process (with createProcess) it fails (saying smt like 'a package returned an unexpected value') and the installation rolls back.

I understand this is kind of a common problem and solutions are:

  1. mark dlls that are being packaged with a * on the version (i.e. x.x.*)
  2. increase the version number of the msi to force an ovewrite

I tried with solution 2 but to my surprise I get all sorts of build errors when I build with devenv (I use devenv on cruise control, all good with msbuild from within visual studio).

Now I am gonna try with solution 1 - but I'd appreciate any suggestion/ideas for alternative solutions.

A: 

A starting point would be understanding why it's behaving differently, perhaps you could try Verbose Logging (grabbed from Wikipedia's Windows Installer entry):

  • Command-line: If installing an MSI package from the command-line, the /L switch can be used to enable logging. For example, the following command installs Package.msi and outputs verbose logging to c:\Package.log:

    msiexec /i Package.msi /l*v c:\Package.log
    
  • Windows Registry: The following registry value can be used to enable verbose logging:

    Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
    Value Name: Logging
    Type: REG_SZ
    Data: voicewarmupx
    

Other things worth trying:

  • Compare a copy of the Installer project file from before conversion to one after conversion to see if Visual Studio has "borked" something in it unexpectedly
  • Are you calling CreateProcess with an unusal StartupInfo or other parameter?
Rob
I tried comparing the project file for it has been completely reorganized - I am pretty much sure something is changing on that level but it's very hard to spot any significant difference in that noise
JohnIdol