GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - KirillOsenkov/MSBuildStructuredLog: A logger for MSBuild that records a structured representation of executed targets, tasks, property and item values.

BranchesTags
Open more actions menu

Latest commit

 

History

2,750 Commits
2,750 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
docs
docs
 
 
src
src
 
 
.editorconfig
.editorconfig
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
BinaryCompatReport.txt
BinaryCompatReport.txt
 
 
Directory.Build.props
Directory.Build.props
 
 
Directory.Build.rsp
Directory.Build.rsp
 
 
Directory.Build.targets
Directory.Build.targets
 
 
Directory.Packages.props
Directory.Packages.props
 
 
LICENSE
LICENSE
 
 
MSBuildStructuredLog.Avalonia.sln
MSBuildStructuredLog.Avalonia.sln
 
 
MSBuildStructuredLog.sln
MSBuildStructuredLog.sln
 
 
PRIVACY.md
PRIVACY.md
 
 
PublishNativeAOT.cmd
PublishNativeAOT.cmd
 
 
PublishNativeAOT.sh
PublishNativeAOT.sh
 
 
README.md
README.md
 
 
ThirdPartyNotices
ThirdPartyNotices
 
 
appveyor.yml
appveyor.yml
 
 
build-macos.cake
build-macos.cake
 
 
chocopush.cmd
chocopush.cmd
 
 
global.json
global.json
 
 
key.snk
key.snk
 
 
nuget.config
nuget.config
 
 
run.sh
run.sh
 
 
version.json
version.json
 
 

Repository files navigation

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.

Build status NuGet package Utils NuGet package (optional) Chocolatey

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.

Screenshot1

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:

  1. dotnet build MSBuildStructuredLog.Avalonia.sln
  2. dotnet publish MSBuildStructuredLog.Avalonia.sln --self-contained -o <some_dir> (I used $HOME/tools/artifacts/StructuredLogViewer.Avalonia)
  3. 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:

Screenshot

or you can build the solution or open an existing log file through the viewer app:

Screenshot2

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

  • https://msbuildlog.com
  • https://github.com/dotnet/msbuild/blob/main/documentation/wiki/MSBuild-Resources.md
  • https://github.com/dotnet/msbuild/blob/main/documentation/wiki/MSBuild-Tips-&-Tricks.md

About

A logger for MSBuild that records a structured representation of executed targets, tasks, property and item values.

Topics

avaloniacsharpdotnetmsbuildnugetviewerwpf

Resources

Readme
MIT license
Activity

Stars

1.7k stars

Watchers

37 watching

Forks

240 forks
Report repository

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.