How to debug a .Net Installer Custom Action
The following article uses options that are available starting
with the Professional edition and project
type.
A relatively easy way to debug a .NET Installer Class Action called during "Install" or "Uninstall", is to add the following lines to the source code of your custom action:
Sample - C#
using System.Windows.Forms;
using System.Diagnostics;
...
#if DEBUG
int processId = Process.GetCurrentProcess().Id;
string message = string.Format("Please attach the debugger (elevated on Vista or Win 7) to process [{0}].", processId);
MessageBox.Show(message, "Debug");
#endif
....Sample - VB.NET
Imports System.Windows.Forms
Imports System.Diagnostics
...
#If DEBUG Then
Dim processId As Integer = Process.GetCurrentProcess().Id
Dim message As String = String.Format("Please attach the debugger (elevated on Vista or Win 7) to process [{0}].", processId)
MessageBox.Show(message, "Debug")
#End If
...Once the .DLL file containing the custom action is generated add it to the project using the Files and Folders Page - Installer Project. In the Custom Actions Page add ".Net Installer Class Action" from the Add Custom Action Tab.
During the installation process a message box will appear displaying the process number of the installer.
In order to debug the custom action follow these steps:
- Start Visual Studio with elevated privileges and open the Custom Action project
- From the menu bar select Tools -> Attach to Process option
- In the newly opened dialog enable the Show processes from all users checkbox
- In the Available Processes list select the process with the ID displayed by the custom action dialog
- Click on button to start debugging