ProExceptionReporter 6.2.0-preview.1

This is a prerelease version of ProExceptionReporter.
dotnet add package ProExceptionReporter --version 6.2.0-preview.1
                    
NuGet\Install-Package ProExceptionReporter -Version 6.2.0-preview.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ProExceptionReporter" Version="6.2.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ProExceptionReporter" Version="6.2.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="ProExceptionReporter" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ProExceptionReporter --version 6.2.0-preview.1
                    
#r "nuget: ProExceptionReporter, 6.2.0-preview.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ProExceptionReporter@6.2.0-preview.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ProExceptionReporter&version=6.2.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=ProExceptionReporter&version=6.2.0-preview.1&prerelease
                    
Install as a Cake Tool

ProExceptionReporter

Fork of PandaWood/ExceptionReporter.NET — this fork removes WPF support (WinForms only), removes pt-BR/ru localisations (English only), and replaces ProDotNetZip with the built-in System.IO.Compression. NuGet package is published as ProExceptionReporter; migrating from the original ExceptionReporter package requires only a package reference swap — namespaces remain ExceptionReporting.*.

NuGet CI

PM> Install-Package ProExceptionReporter

How it Looks

When showing a dialog to the user (can also be sent silently) there are 2 presentation modes - Less Scary and More Detail

Less Scary

Compact Mode

More Detail

More Detail Mode

Interface Configuration

You don't have to modify the code to achieve a basic level of customization as many changes can be made with configuration.

The screenshot above is configured to not show icons on the buttons (ShowButtonIcons) and the window title is customised (TitleText)

There are various other options available such hiding the email button (ShowEmailButton), changing the label text (UserExplanationLabel), the background color (BackgroundColor) etc - see the property Config on the main ExceptionReporter class.

App Version Type

By default the report shows the Assembly Version (AssemblyVersion attribute). If your project uses FileVersion or InformationalVersion (e.g. SemVer with a git hash via <InformationalVersion>), configure it before calling Show/Send:

er.Config.AppVersionType = AssemblyVersionType.FileVersion;
// or
er.Config.AppVersionType = AssemblyVersionType.InformationalVersion;

If the requested attribute is absent the field will be empty (no silent fallback).

How to use it

The Exception Reporter can be invoked manually or by setting up a Windows Exception event - see Sample Code Usage

The ultimate goal is the developer receiving a formatted exception report - see Sending a Report

You can even format your own report using Report Templates

Why use it

Some Important Features

  • Option to send a report silently and asynchronously - ie without showing a dialog
  • Send a report using various methods:
    • RESTful API/WebService
    • to Email address via SMTP
    • to Email address via installed client (SimpleMAPI)
  • Emailing includes support for automatically attaching files and compressing into a single zip file - useful for including log files and configuration files to help with troubleshooting
  • The report sent to the developer can be in various formats:
    • Plain Text
    • HTML
    • Markdown
    • Custom - write your own Handlebars/Mustache template to create the report
  • The report includes various useful information such as:
    • Full Stack Trace (including inner exceptions and multiple exceptions)
    • System Information (using WMI) such as OS Version, Memory, Language, TimeZone etc.
    • A list of Referenced Assemblies (with versions) being used by the current executable
    • Details of your App such as name/version/date/time etc

Demos, Design and Testing

  • The solution includes a WinForms demo app (demo/) for testing the dialog
  • The source code has over 70 unit tests covering most of the important code
  • ExceptionReporter is designed using the MVP or Model-View-Presenter pattern and the classes and concerns are liberally separated using SOLID design principles

Sample Reports

Markdown

Markdown

Plain Text

========================================
Acme Error Report

Application: ExceptionReporter Demo App
Version:     4.0
Region:      English (Australia)
Date: 25/08/2018
Time: 2:40 PM
User Explanation: "I just pressed Connect and this error showed immediately"

Error Message: Unable to establish a connection with the Foo bank account service
 
[Stack Traces]
Top-level Exception
Type:        System.IO.IOException
Message:     Unable to establish a connection with the Foo bank account service. The error number is #FFF474678.
Source:      WinFormsDemoApp
Stack Trace: at WinFormsDemoApp.DemoAppView.AndAnotherOne() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 110
    at WinFormsDemoApp.DemoAppView.CallAnotherMethod() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 101
    at WinFormsDemoApp.DemoAppView.SomeMethod() in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 96
    at WinFormsDemoApp.DemoAppView.ShowExceptionReporter(Boolean useConfig) in Z:\MyProjects\ExceptionReporter\src\WinFormsDemoApp\DemoAppView.cs:line 81

Inner Exception 1
Type:        System.Exception
Message:     This is an Inner Exception message - with a message that is not too small but perhaps it should be smaller

[Assembly References] 
mscorlib, Version=2.0.0.0
System.Windows.Forms, Version=2.0.0.0
System, Version=2.0.0.0
ProExceptionReporter, Version=6.0.0.0
System.Drawing, Version=2.0.0.0

[System Info]
Operating System
-Microsoft Windows 7 Enterprise
--CodeSet = 1252
--CSDVersion =
--CurrentTimeZone = 600
--FreePhysicalMemory = 1947848
--OSArchitecture = 32-bit
--OSLanguage = 1033
--ServicePackMajorVersion = 0
--ServicePackMinorVersion = 0
--Version = 6.1.7600

[Machine]
--Manufacturer = Gigabyte Technology Co., Ltd.
--Model = P35-DS3L
--TotalPhysicalMemory = 3756515328

========================================

Build

Requires .NET SDK 10. Targets net48 and net10.0-windows (Windows only).

dotnet build test/ExceptionReporter.Tests.csproj
dotnet test test/ExceptionReporter.Tests.csproj
dotnet pack src/ExceptionReporter.csproj -c Release --output ./artifacts

Solution Structure

src/   — ProExceptionReporter library (NuGet, net48 + net10.0-windows)
test/  — unit tests (NUnit + Moq)
demo/  — WinForms demo application

Unit tests use Moq and NUnit — see test/.

Releasing

Releases are published automatically via GitHub Actions when a v* tag is pushed to main:

git tag v6.1.0
git push origin v6.1.0

The pipeline builds, tests, and publishes to NuGet.org and GitHub Packages. CI runs on every push to main and every PR.

Requires NUGET_API_KEY secret configured in repo Settings → Secrets → Actions.

Product Compatible and additional computed target framework versions.
.NET net10.0-windows7.0 is compatible. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.2.0-preview.1 43 4/28/2026
6.1.0 91 4/28/2026
6.0.1-preview.1 43 4/28/2026
6.0.0 84 4/28/2026