Install/uninstall MSI using VB.NET

Since the Windows Installer Object Model does not work properly with .NET, try controlling the installation, etc. of MSIs using the API provided in msi.dll.

This tip was submitted to the VS.NET Info Center by member Chris Disley. Please let other users know how useful

it is by rating it below. Do you have a tip or code of your own you'd like to share? Submit it here.


Since the Windows Installer Object Model does not work properly when used with .NET, I've found that the easiest way to control the installation, etc. of MSIs is to use the API provided in msi.dll.

Code:

    Const ERROR_SUCCESS = 0

    Declare Function MsiInstallProduct Lib "msi.dll" Alias "MsiInstallProductA"
(ByVal szPackagePath As String, ByVal szCommandLine As String) As Long

    Sub InstallMSI(ByVal remove As Boolean, ByVal MSIFile As String)
        Select Case remove
            Case True
                If MsiInstallProduct("MSIFileName", "REMOVE=ALL") =
ERROR_SUCCESS Then MsgBox("OK")
            Case False
                If MsiInstallProduct("MSIFileName", "property1=value1 
property2=value2") = ERROR_SUCCESS Then MsgBox("OK")
        End Select
    End Sub

This was first published in April 2003

Dig deeper on VB 6 to VB .NET Migration

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

SearchCloudComputing

SearchSoftwareQuality

SearchSOA

TheServerSide

SearchCloudApplications

Close