BugSplat 9.0.1

dotnet add package BugSplat --version 9.0.1
                    
NuGet\Install-Package BugSplat -Version 9.0.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="BugSplat" Version="9.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BugSplat" Version="9.0.1" />
                    
Directory.Packages.props
<PackageReference Include="BugSplat" />
                    
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 BugSplat --version 9.0.1
                    
#r "nuget: BugSplat, 9.0.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 BugSplat@9.0.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=BugSplat&version=9.0.1
                    
Install as a Cake Addin
#tool nuget:?package=BugSplat&version=9.0.1
                    
Install as a Cake Tool

BugSplat for .NET on Windows

Crash reporting for .NET 10 and .NET Framework 4.7.2+ apps on Windows, through the BugSplat native SDK. Crashes and handled exceptions are reported as minidumps, which BugSplat symbolicates from your uploaded symbols. Managed frames get file names and line numbers without you shipping PDBs.

Install

dotnet add package BugSplat

The package includes BugSplat's native runtime for x86, x64 and ARM64. At build time it copies the set that matches your app's architecture next to the executable: BugSplat.dll, BugSplatMonitor.exe, BugSplatReporter.exe and BugSplatWer.dll, plus their PDBs. They must ship with your app. The monitor is a separate process that writes the report after a crash and uploads it, and the reporter shows the crash dialog.

Use

using BugSplatDotNet;

var bugSplat = new BugSplat("YourDatabase", "YourApp", "1.0.0");

// Unhandled exceptions and native faults are now reported automatically.

try
{
    DoWork();
}
catch (Exception ex)
{
    // Call from inside the catch: the dump is taken at the throw site.
    bugSplat.Post(ex);
}

Upload your app's .exe, .dll and .pdb files to BugSplat with symbol-upload so reports show function names, files and line numbers. Build with <DebugType>full</DebugType> (Windows PDBs).

Architecture

The native runtime must match the architecture your process runs as. It is chosen from, in order:

  1. RuntimeIdentifier, for example win-arm64.
  2. PlatformTarget (x86, x64 or ARM64).
  3. For .NET AnyCPU, the architecture of the .NET SDK doing the build. That is also what the app's .exe runs as.
  4. For .NET Framework AnyCPU with Prefer32Bit, x86. Otherwise x64.

To override the choice, set <BugSplatNativeArchitecture>x86|x64|arm64</BugSplatNativeArchitecture>.

The files are copied for executables and test projects. A library loaded by a native host (a plugin, or a CLR hosted from C++) can set <BugSplatCopyNativeFiles>true</BugSplatCopyNativeFiles>. The files must then be deployed next to the host's executable, because that is where BugSplatMonitor.exe is looked for.

Run the app through its .exe. dotnet YourApp.dll makes dotnet.exe the process, and the monitor won't be found next to it.

Customize the crash dialog

The dialog's colours, fonts, layout, logo and wording come from a theme folder that BugSplatReporter.exe reads at run time. To ship one, add a folder named BugSplatTheme next to your project file:

YourApp.csproj
BugSplatTheme\
  theme.json
  strings.en-US.json
  logo.png

Write only what you change. Customize the crash dialog lists every key in theme.json and strings.en-US.json with its default. The dialog's source is available to Enterprise customers who need more than a theme can change.

The build copies the folder's contents, subfolders included, to BugSplatTheme\ in the output and publish folders, beside BugSplatReporter.exe, which is the only place the reporter looks. A single-file publish leaves it as a loose folder, because the reporter is a separate process that reads it from disk.

To keep the theme somewhere else, set its path, relative to the project:

<BugSplatThemeDirectory>..\Branding\CrashDialog</BugSplatThemeDirectory>

If that folder doesn't exist, the build fails (BSTHEME000) rather than quietly shipping the default dialog.

The reporter never fails on a bad theme: anything it can't use falls back to the default, so a crash report is never lost to a typo. That also makes mistakes quiet, so every build checks the folder with the same code the dialog uses and reports each fallback as a warning:

Code Finding
BSTHEME001 A value, or a whole section, in theme.json falls back to its default, such as a colour that isn't #RRGGBB.
BSTHEME002 A key the reporter doesn't read, usually a typo.
BSTHEME003 The logo is missing, over 4 MB or 8192 pixels on a side, or can't be decoded. A logo name must be a plain file name in the theme folder; anything else is BSTHEME001.
BSTHEME004 A string file, or a value in one, that the reporter ignores.
BSTHEME005 The folder has neither theme.json nor a string file.

To silence one kind of finding, add its code to <NoWarn>. Set <BugSplatCheckTheme>false</BugSplatCheckTheme> to turn the check off. It runs only when building on Windows.

A library loaded by a native host that copies the native files with <BugSplatCopyNativeFiles>true</BugSplatCopyNativeFiles> gets the theme the same way, in its own output's BugSplatTheme\ folder; deploy that folder next to the host's executable along with the native files. If you copy BugSplat's files to the host yourself instead, copy your theme folder there as BugSplatTheme\ too.

Learn more

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.7.2

    • No dependencies.
  • net10.0

    • No dependencies.

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
9.0.1 84 10/6/2026
9.0.0 66 10/6/2026
8.6.2 67 10/5/2026
8.6.1 101 10/5/2026