Deployment in Visual Studio 
Walkthrough: Using a Custom Action to Display a Message at Installation 

The following walkthrough demonstrates how to use a custom action to take user input and pass it to a message box that appears during installation. This is a simple demonstration of custom actions, which are useful for many other tasks. For example, a custom action could take as user input the location of the Setup.exe file and use it to launch the application after installing it.

This walkthrough demonstrates passing data to a dynamic property using a custom action, and how to use an installer class and the CustomActionData property.

NoteNote

The dialog boxes and menu commands you see might differ from those described in Help depending on your active settings or edition. To change your settings, click Import and Export Settings on the Tools menu. For more information, see Visual Studio Settings.

NoteNote

The following instructions demonstrate creating a deployment project using a Visual Basic project; the general principles apply to all Visual Studio language projects that support deploying Windows applications.

To create a custom action

  1. On the File menu, point to New, and then click Project.

  2. In the New Project dialog box, select Visual Basic in the Project Types pane, and then choose Class Library in the Templates pane. In the Name box, type PassData.

    The project is added to Solution Explorer.

To create an installer class

  1. On the Project menu, click Add Class.

    In the Add New Item dialog box, choose Installer Class. Accept the default name.

  2. When the installer class appears on the design surface, right-click the design surface and click View Code to view the file contents in the code editor.

  3. Add the following procedure to override the Install procedure of the base class:

    Visual Basic
    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
        MyBase.Install(stateSaver)
        Dim myInput As String = Me.Context.Parameters.Item("Message")
        If myInput Is Nothing Then
            myInput = "There was no message specified"
        End If
        MsgBox(myInput)
    End Sub
    NoteNote

    If you type Public Overrides, then type space, Intellisense will provide a list of methods and properties; you can select Install from the list and get the complete declaration.

  4. In Solution Explorer, right-click Class1.vb and select Delete (because it is unnecessary).

To create a deployment project

  1. On the File menu, point to Add, and then click New Project.

  2. In the Add New Project dialog box, in the Project Type pane, expand the Other Project Types node and select Setup and Deployment, then choose Setup Project in the Templates pane. In the Name box, type PassData Installer.

  3. In the Properties window, select the ProductName property and type PassData.

    Also, select the Manufacturer property and type My Company.

  4. In the File System Editor, select the Application Folder node. On the Action menu, point to Add, then click Project Output.

  5. In the Add Project Output Group dialog box, select the primary output for the PassData project.

    Primary output from PassData (Active) appears in the File System Editor.

To add a custom action

  1. Select the PassData Installer project in Solution Explorer. On the View menu, point to Editor, and then click Custom Actions.

  2. In the Custom Actions Editor, select the (top-level) Install node. On the Action menu, click Add Custom Action.

  3. In the Select item in Project dialog box, double-click the Application Folder.

    Select Primary output from PassData (Active). This will add the PassData custom action to the Install node.

  4. In the Properties window, select the CustomActionData property and type /Message="[MESSAGE]".

    Make sure the InstallerClass property is set to True (this is the default).

To customize the installation user interface

  1. Select the Setup project in Solution Explorer. On the View menu, point to Editor, and then click User Interface.

  2. In the User Interface Editor, select the Start node under Install. On the Action menu, click Add Dialog.

  3. In the Add Dialog dialog box, select the Textboxes (A) dialog.

  4. On the Action menu, click Move Up. Repeat until the Textboxes (A) dialog is above the Installation Folder node.

  5. In the Properties window, select the BannerText property and type:

    What is your message?

  6. Select the BodyText property and type:

    Enter your message here.

  7. Select the Edit1Label property and type:

    Message:

  8. Select the Edit1Property property and type:

    MESSAGE

  9. Select the Edit2Visible, Edit3Visible, and Edit4Visible properties and set them to False.

  10. On the Build menu, click Build Pass Data Installer.

To install on your development computer

  • Select the PassData Installer project in Solution Explorer. On the Project menu, click Install.

    This will run the installer on your development computer. In the What is your Message? installation dialog box, type Hello World!.

    NoteNote

    You must have install permissions on the computer in order to run the installer.

To deploy to another computer

  1. In Windows Explorer, navigate to your project directory and find the built installer. The default path will be \Documents and Settings\yourloginname\My Documents\Visual Studio 2005\Projects\Solution Folder Name\My Notepad Installer\project configuration\My Notepad Installer.msi. The default project configuration is either Debug or Release.

  2. Copy PassData Installer.msi, Setup.exe, and all other files and subdirectories in the directory to another computer.

    NoteNote

    To install on a computer that is not on a network, copy the files to traditional media such as CD-ROM.

    On the target computer, double-click Setup.exe to run the installer. In the What is your Message? installation dialog box, type Hello World!.

    NoteNote

    You must have install permissions on the computer in order to run the installer.

To test the installation

  • Run the application and verify that the text box contains the text 'Hello World!', which you entered during installation.

To uninstall the application

  1. In Windows Control Panel, double-click Add or Remove Programs.

  2. In the Add or Remove Programs dialog box, select PassData Installer and click Remove, then click OK to close the dialog box.

    NoteTip

    To uninstall from your development computer, on the Project menu, click Uninstall.

See Also

Reference

CustomActionData Property

Other Resources

Custom Actions Management in Deployment
Using Installation Components

Tags :


Community Content

HugeHugh
Where is the Messagebox code?
Where is the information about how to intercept the parameter that was passed to the Install() method, and do something with it? COMPLETELY SKIPPED

How about some C# sample code instead of just VB???

Another useless example from Microsoft.
Tags :

Wade73
Read the code
First, almost all the code in this place is C#, so for us VB.Net coders it is a pain to have to wade through all the semicolons and brackets to figure out what is going on. Second, read the code and you will see where the connection is made. If you need more detailed instructions, search for custom actions and CustomActionData. Here is what you need to do if you just take a moment to look (search the code line to see the detailed how to).

1. Define the variable in the Custom Actions Editor:

In the Properties window, select the CustomActionData property and type /Message="[MESSAGE]".

2. Assign an input control on a dialog window to capture the variable:

Select the Edit1Property property and type: MESSAGE

3. Use the variable in code:

Dim myInput As String = Me.Context.Parameters.Item("Message")

I hope this helps others.

Wade73
Tags :

Thomas Lee
Mine did not work.
No idea why.



[tfl - 22 10 09] Hi - and thanks for your post. You should post questions like this to the MSDN Forums at http://forums.microsoft.com/msdn or the MSDN Newsgroups at
  http://www.microsoft.com/communities/newsgroups/en-us/. You are much more likely get a quicker response using the forums than through the Community Content. For specific help about:
Visual Studio : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.vstudio%2C&
SQL Server : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.sqlserver%2C&
.NET Framework : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public.dotnet.framework
PowerShell : http://groups.google.com/group/microsoft.public.windows.powershell/topics?pli=1
All Public : http://groups.google.com/groups/dir?sel=usenet%3Dmicrosoft.public%2C&

Page view tracker