Home | FAQ | Thesis | Diary | Projects | Resume | Todo | Index |

Related: install, InstallShield, WiX

Package describes one or more Products
Product contains one or more Features
Feature contains one or more Components
Components modify files, registry entries, services

ProductCode ProductVersion
Upgrade Code

~/bin/SCRIPTS/WiMerge.vbs
~/bin/SCRIPTS/WiMakCab.vbs
~/bin/SCRIPTS/WiLstPrd.vbs


==Extract files from .msi
$ msiexec /a Example.msi /qb TARGETDIR="Example"
$ dark.exe /x SomeInstaller.msi #Get dark.exe from WiX toolkit


Microsoft.com/downloads/details.aspx?FamilyId=6A35AC14-2626-4846-BB51-DDCE49D6FFB6 >>Windows Installer 4.5 Software Development Kit

$ msizap.exe # MSDN.Microsoft.com/en-us/library/aa370523.aspx >>Msizap.exe is a command line utility that removes either all Windows Installer information for a product or all products installed on a computer.

"c:\Program Files\Microsoft SDKs\Windows\v6.1\bin\msizap.exe"


// Download.Microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe
// Download.microsoft.com/download/office2000pro/util20/1/NT4/EN-US/msicuu.exe
$ msicuu.exe #Windows Installer Clean Up Utility -- Support.Microsoft.com/kb/290301

Support.Microsoft.com/kb/Q238413

$ msival2.exe #command line utility that can run a suite of Internal Consistency Evaluators - ICEs. -- http://msdn.microsoft.com/en-us/library/aa370504(VS.85).aspx

$ msistuff.exe #command line utility that can be used to display or configure the resources in the Setup.exe bootstrap executable. -- http://msdn.microsoft.com/en-us/library/aa370408(VS.85).aspx

MakeMSI-Manual.DennisBareis.com/msival2.htm

GormanOnline.com/blogs/msidle >>Join me on my journey to become one of the "MSIdle" -- those elite geeks who code an MSI patch faster than a speeding bullet, can write custom actions in a single bound, and make the world of deployment safe for the rest of us.

Support.Microsoft.com/kb/227091 >>Command-Line Switches for the Microsoft Windows Installer Tool

Support.Microsoft.com/kb/231747 >>How to publish non-MSI programs with .zap files

ServerWatch.com/tutorials/article.php/3774681 >>WinInstall LE, MSI Creator and Configuration Builder


Scalable.com/WinINSTALL_LE.aspx >>WinINSTALL LE is a FREE software packaging and application installer management solution that supports the latest MSI schema and provides the functionality, consistency, and ease of use that have made it a favorite with administrators for over a decade.



=== Debug
$ msiexec /l* Debug.log /i WixSmallBusinessWebsite.msi

$ msiexec /help
"'
Windows ® Installer. V 4.00.6001.0

msiexec /Option <Required Parameter> [Optional Parameter]

Install Options
    </package | /i> <Product.msi>
        Installs or configures a product
    /a <Product.msi>
        Administrative install - Installs a product on the network
    /j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
        Advertises a product - m to all users, u to current user
    </uninstall | /x> <Product.msi | ProductCode>
        Uninstalls the product
Display Options
    /quiet
        Quiet mode, no user interaction
    /passive
        Unattended mode - progress bar only
    /q[n|b|r|f]
        Sets user interface level
        n - No UI
        b - Basic UI
        r - Reduced UI
        f - Full UI (default)
    /help
        Help information
Restart Options
    /norestart
        Do not restart after the installation is complete
    /promptrestart
        Prompts the user for restart if necessary
    /forcerestart
        Always restart the computer after installation
Logging Options
    /l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
        i - Status messages
        w - Nonfatal warnings
        e - All error messages
        a - Start up of actions
        r - Action-specific records
        u - User requests
        c - Initial UI parameters
        m - Out-of-memory or fatal exit information
        o - Out-of-disk-space messages
        p - Terminal properties
        v - Verbose output
        x - Extra debugging information
        + - Append to existing log file
        ! - Flush each line to the log
        * - Log all information, except for v and x options
    /log <LogFile>
        Equivalent of /l* <LogFile>
Update Options
    /update <Update1.msp>[;Update2.msp]
        Applies update(s)
    /uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
        Remove update(s) for a product
Repair Options
    /f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
        Repairs a product
        p - only if file is missing
        o - if file is missing or an older version is installed (default)
        e - if file is missing or an equal or older version is installed
        d - if file is missing or a different version is installed
        c - if file is missing or checksum does not match the calculated value
        a - forces all files to be reinstalled
        u - all required user-specific registry entries (default)
        m - all required computer-specific registry entries (default)
        s - all existing shortcuts (default)
        v - runs from source and recaches local package
Setting Public Properties
    [PROPERTY=PropertyValue]
'"


msi2xml.sf.net >>The command line tool msi2xml converts Windows Installer Databases (.msi / .msm) to text based XML files.  The complementary tool xml2msi reconstructs the .msi / .msm from the XML file.

izfree.sf.net >>This is izfree version 1.1, a collection of free tools for authoring Windows Installer .MSI installation packages. izfree is designed for use in conjunction with the Orca database editor included in the Microsoft Platform SDK.

MSI.list.files

http://technet.microsoft.com/en-us/library/cc766272.aspx >> OCSetup is available as part of the Windows Vista(R) and Windows Server(R) 2008 operating system. This tool replaces Sysocmgr.exe, which is included in the Windows XP and Windows Server 2003 operating systems.
"'
You can use OCSetup.exe on a computer running Windows Vista or Windows Server 2008 to install or uninstall:

    * Microsoft System Installer (MSI) files that are passed to the Windows Installer service (MSIExec.exe)
    * Component-Based Servicing (CBS) components that are passed to Package Manager
    * CBS or MSI packages that have an associated custom installer .exe file
'"



http://msdn.microsoft.com/en-us/library/aa372865(VS.85).aspx



cboles




Joined: Dec 06, 2008
Posts: 1



http://help.wugnet.com/vista/repair-broken-Windows-Installerftopic-111124-days0-orderasc-8.html
"'
[Post] (Msg. 14) Posted: Sat Dec 06, 2008 2:40 pm
Post subject: A fix... at least for x64 users [Login to view extended thread Info.]

I have been plagued with this installer problem for almost a year on my x64 install of Vista. I have read many forums for solutions, but none of them have worked. I spent some time today looking at my event logs and thinking about the problem:

* my problem only occurs when installing true 64-bit applications
* the event log indicates that msiexec in SysWow64 is failing

I though about it, and the misexec.exe in SysWow64 is for 32-bit installs, not 64-bit installs, so it would seem that the wrong installer version is being run... Looking at the registry under

$ reg query HKLM\SYSTEM\CurrentControlSet\Services\MSIServer /s

I found the following suspicious entry

SysWow64 = 1

I deleted this entry, and now my 64-bit installs are working! I guess the reg key is used to force the 32-bit version of misexec to run even if the install is 64-bit. I'm not sure where it got set, but removing it finally fixed my problems. Hope this helps someone else!

Colby
'"




$ reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /s




----
Ranbeer.WordPress.com/2008/09/14/making-upgrade-msi-using-wix

<Product Id='PUT-A-GUID' Name='YOUR PRODUCT NAME'
         Language='1033' Version='1.1.9.17'
         UpgradeCode='PUT-A-GUID-FOR-UPGRADE-CODE'
         Manufacturer='MANUFACTURER'>

  <Package Id='PUT-A-GUID' Description='YOUR PRODUCT DESCRIPTION'
           Comments='Version 1.1.9.17' Manufacturer='YOUR MANUFACTURER'
           InstallerVersion='200' Compressed='yes'/>

  <Upgrade Id='A-GUID-SHOULD-BE-SAME-AS-UPGRADE-CODE'>

    <UpgradeVersion OnlyDetect='no' Property='PROJECT_UPGRADE'
                    Maximum='1.1.9.17' IncludeMaximum='no' RemoveFeatures='all'/>
    <Property Id='PROJECT_UPGRADE' Secure='yes'/>

    <UpgradeVersion OnlyDetect='yes' Property='PROJECT_DOWNGRADE'
                    Minimum='1.1.9.17' IncludeMinimum='no'/>
    <Property Id='PROJECT_DOWNGRADE' Secure='yes'/>

  </Upgrade>

  <CustomAction Id='NoDownGrade' Error='A later version of [ProductName] is already installed.' />

  <InstallExecuteSequence>

    <LaunchConditions After='AppSearch'></LaunchConditions>

    <Custom Action='NoDownGrade' After='FindRelatedProducts'>
    <![CDATA[PROJECT_DOWNGRADE]]></Custom>

    <RemoveExistingProducts After='InstallFinalize'/>

  </InstallExecuteSequence>
</Product>