msbuild.otel.harness 0.0.3

dotnet tool install --global msbuild.otel.harness --version 0.0.3
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local msbuild.otel.harness --version 0.0.3
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=msbuild.otel.harness&version=0.0.3
                    
nuke :add-package msbuild.otel.harness --version 0.0.3
                    

MSBuild Structured Log exporter for OpenTelemetry

Table of Contents

About

This project provides a library for parsing MSBuild Structured logs and a Native AOT .NET tool for performing that same task.

Getting Started

Prerequisites

You'll need the .NET 10 SDK or greater installed to run the dotnet tool.

Installing

Install the tool with dotnet tool install msbuild.otel.harness (NAME TBD)

Usage

See the --help output for details. You can export spans to the console or an OTLP-compatible endpoint:

  • --console, to emit spans to stdout
  • --oltp-endpoint <endpoint>, to emit spans to an OTLP-compatible instance
  • --oltp-header <oltp=header>, to emit additional headers to an OTLP-compatible instance (for example authentication headers)

Full Help:

Description:
  Translates MSBuild structured log files to OpenTelemetry spans.

Usage:
  msbuild.otel.harness <logFile> [options]

Arguments:
  <logFile>  The MSBuild structured log file to parse

Options:
  --serviceName <serviceName>      The OpenTelemetry service name to use for the spans. [default: msbuild]
  --console                        Log the emitted spans to the console
  --oltp-endpoint <oltp-endpoint>  The OpenTelemetry endpoint to use for the spans.
  --oltp-header <oltp-header>      Allows for adding arbitrary headers in a key=value format. Use this option multiple times for multiple header values.
  -?, -h, --help                   Show help and usage information

Publishing

Configure a NuGet trusted publishing policy for .github/workflows/release.yml. Add the NuGet account name to the NUGET_USER repository secret.

  1. Move the released changes into a versioned and dated CHANGELOG.md section.
  2. Push a matching tag that uses the v<version> format, such as v1.2.3.

The workflow builds Native AOT harness packages for Linux, Windows, and macOS. It builds x64 and ARM64 packages. Pull requests run the same package build. Tagged releases publish the packages to NuGet and create a GitHub release. The msbuild.otel library is not packaged separately.

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
0.0.3 146 8/10/2026
0.0.2 113 8/7/2026
0.0.1 567 1/31/2022

### Added
- Add Native AOT smoke tests that read a checked-in binlog on Linux, Windows, and macOS.

### Changed
- Publish the harness as Native AOT tool packages for Linux, Windows, and macOS on x64 and ARM64.
- Publish a RID-less tool package that selects the correct native package for the current platform.
- Build the Native AOT packages with the same workflow for pull requests and releases.
- Exclude native debug symbols from the Native AOT packages.
- Restore all packages from NuGet.org through package source mapping.
- Manage direct and transitive dependency versions in `Directory.Packages.props`.
- Update System.CommandLine and the Microsoft.Build dependencies.

### Removed
- Stop publishing `msbuild.otel` as a separate NuGet package.

### Fixed
- Preserve complete binlog data in Native AOT packages.