dotnet / dotnet/android

Create optional bill of materials output

Open
#9,294 0 comments 0 reactions 2 assignees Claimed by @jonathanpeppers View on GitHub
Area: App+Library Build enhancement
Dominant language
C#
Stars
2.1k
Forks
579
Avg merge
1d 20h
Merged PRs (30d)
257

Description

We often get support requests of the form "this works when I build my app on my machine, but fails when I build it on CI". These usually point to a difference in build environments between the machines. Technically, the versions used for all the build tools are probably in a `.binlog`, but it takes a lot of spelunking and knowledge to be able to compare two `.binlog`'s. Some information is also available in `$(IntermediateOutputPath)build.props` but it's hidden deep in the `obj` directory.

If we made this process easier, would it empower users to self-diagnose build environment differences between machines, eliminating the need for our help?

## Possible Solution

Nothing is done by default. A user can add the following MSBuild to their project to generate a BOM manifest that is written to the `$(OutputPath)`:

```xml
true
```

The file written to the project output can be whatever format but should contain the following non-exhaustive list of information:

- OS Version
- .NET version
- Workload version(s)
- Build Tools version
- Android SDK version
- JDK version
- Cmdline Tools version
- Linker version
- Aapt2 version
- ApkSigner version
- R8 version
- etc.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.