MSBuild.StructuredLogger.Utils
2.3.204
dotnet add package MSBuild.StructuredLogger.Utils --version 2.3.204
NuGet\Install-Package MSBuild.StructuredLogger.Utils -Version 2.3.204
<PackageReference Include="MSBuild.StructuredLogger.Utils" Version="2.3.204" />
<PackageVersion Include="MSBuild.StructuredLogger.Utils" Version="2.3.204" />
<PackageReference Include="MSBuild.StructuredLogger.Utils" />
paket add MSBuild.StructuredLogger.Utils --version 2.3.204
#r "nuget: MSBuild.StructuredLogger.Utils, 2.3.204"
#:package MSBuild.StructuredLogger.Utils@2.3.204
#addin nuget:?package=MSBuild.StructuredLogger.Utils&version=2.3.204
#tool nuget:?package=MSBuild.StructuredLogger.Utils&version=2.3.204
MSBuildStructuredLog
A logger for MSBuild that records a structured representation of executed targets, tasks, property and item values. It can greatly simplify build investigations and provides a portable log interchange format (*.binlog) and a rich interactive log viewer app.
Homepage: https://msbuildlog.com BinlogMcp: https://msbuildlog.com/binlogmcp Syntax: https://msbuildlog.com/syntax
Thanks to SignPath.io for providing a free code signing service and to the SignPath Foundation for a free code signing certificate to sign the installer.
Install:
Install from https://msbuildlog.com.
The app updates automatically via Squirrel (after launch it checks for updates in background), next launch starts the newly downloaded latest version.
Installing the Avalonia version on Mac:
Download the latest release for arm64 or x64.
Alternatively, you can install from Homebrew:
brew install structuredlogviewer
Building & Running the Avalonia version on Mac/Linux:
git clone https://github.com/KirillOsenkov/MSBuildStructuredLog
cd MSBuildStructuredLog
./run.sh
Alternatively, a longer version:
dotnet build MSBuildStructuredLog.Avalonia.slndotnet publish MSBuildStructuredLog.Avalonia.sln --self-contained -o <some_dir>(I used $HOME/tools/artifacts/StructuredLogViewer.Avalonia)- make a script
$HOME/bin/structured-log-viewer(or whatever's on your PATH):
#! /bin/sh
exec dotnet ${HOME}/tools/artifacts/StructuredLogViewer.Avalonia/publish/StructuredLogViewer.Avalonia.dll "$@"
Requirements:
Windows:
- .NET Framework 4.7.2
- MSBuild 17.0
- Visual Studio 2022
Mac:
- .NET SDK
Usage:
You can pass /bl switch to msbuild.exe or dotnet build to record a binary build log to msbuild.binlog, in the same folder as the project/solution being built:
or you can build the solution or open an existing log file through the viewer app:
Features:
- Preprocess project files (with all imports inlined), right-click on a project → Preprocess
- If a log has embedded files, you can view the list of files, full-text search in all files, and use the Space key (or double-click) on most nodes to view the source code.
- Displays double-writes (when files from different sources are written to the same destination during a build, thus causing non-determinism)
- Displays target dependencies for each target
- Narrow down the search results using the under() or project() clauses to only display results under a certain parent or project.
- Each node in the tree has a context menu. Ctrl+C to copy an item and the entire subtree to Clipboard as text.
- Delete to hide nodes from the tree (to get uninteresting stuff out of the way).
- Open and save log files (option to save log files to .xml)
- Logs can include the source code project files and all imported files used during the build.
Investigating problems with MSBuildStructuredLog
Open an issue if you're running into something weird and I can take a look into it. If MSBuildStructuredLog crashes during the build, it will attempt to write the exception call stack to:
%localappdata%\Microsoft\MSBuildStructuredLog\LoggerExceptions.txt
MSBuild Resources
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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 Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- DotUtils.MsBuild.BinlogRedactor.SensitiveDataDetector (>= 0.0.9)
- GuiLabs.Language.Xml (>= 1.2.93)
- Microsoft.Build.Framework (>= 17.5.0)
- Microsoft.Build.Utilities.Core (>= 17.5.0)
- MSBuild.StructuredLogger (>= 2.3.204)
- Newtonsoft.Json (>= 13.0.3)
- NuGet.ProjectModel (>= 6.11.0)
- System.Collections.Immutable (>= 8.0.0)
- System.Formats.Asn1 (>= 8.0.1)
- System.Memory (>= 4.6.0)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.0)
- System.Text.Json (>= 8.0.5)
- System.Threading.Tasks.Extensions (>= 4.5.4)
-
net10.0
- DotUtils.MsBuild.BinlogRedactor.SensitiveDataDetector (>= 0.0.9)
- GuiLabs.Language.Xml (>= 1.2.93)
- Microsoft.Build.Framework (>= 17.5.0)
- Microsoft.Build.Utilities.Core (>= 17.5.0)
- MSBuild.StructuredLogger (>= 2.3.204)
- Newtonsoft.Json (>= 13.0.3)
- NuGet.ProjectModel (>= 6.11.0)
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 |
|---|---|---|
| 2.3.204 | 31 | 5/12/2026 |