Skip to content

Upgrade MSBuild.ProjectCreation to 18.0.0#84

Merged
baronfel merged 1 commit into
dotnet:mainfrom
MattKotsenas:refactor/msbuild-projectcreation-18
Jun 18, 2026
Merged

Upgrade MSBuild.ProjectCreation to 18.0.0#84
baronfel merged 1 commit into
dotnet:mainfrom
MattKotsenas:refactor/msbuild-projectcreation-18

Conversation

@MattKotsenas

Copy link
Copy Markdown
Member

MSBuild.ProjectCreation 17.0.1 transitively brings Microsoft.Build 18.0.2, whose net472 build references the 9.x BCL family. On dev machines that have VS 2026 Insiders installed alongside VS 2022, MSBuildAssemblyResolver picks the highest installed VS via the Setup COM API and loads MSBuild assemblies that were compiled against the 10.x BCL family and causes a TypeLoadException.

Bumping to MSBuild.ProjectCreation 18.0.0 pulls in Microsoft.Build 18.6.3, which references the 10.x BCL family. To absorb those into the test bin we mirror the upstream UnitTests project: pin System.Text.Json to 10.0.3 on net472 and emit a binding redirect.

@MattKotsenas MattKotsenas requested a review from a team as a code owner June 2, 2026 15:05
@MattKotsenas MattKotsenas requested a review from baronfel June 17, 2026 04:29
MSBuild.ProjectCreation 17.0.1 transitively brings Microsoft.Build 18.0.2,
whose net472 build references the 9.x BCL family. On dev machines that have
VS 2026 Insiders installed alongside VS 2022, MSBuildAssemblyResolver picks
the highest installed VS via the Setup COM API and loads MSBuild assemblies
that were compiled against the 10.x BCL family - outside the test bin's
auto-generated binding redirect range - producing a TypeLoadException for
IAsyncDisposable.DisposeAsync at first call into BuildManagerHost.

Bumping to MSBuild.ProjectCreation 18.0.0 (the upstream release that adds
VS 2026 support) pulls in Microsoft.Build 18.6.3, which references the 10.x
BCL family. To absorb those into the test bin we mirror the upstream
UnitTests project: pin System.Text.Json and System.Text.Encodings.Web to
10.0.3 on net472 and emit a binding redirect for System.Text.Encodings.Web.

No public API change; SDK still ships against Microsoft.Build.Utilities.Core
17.8.43 as its minimum supported MSBuild version.
@MattKotsenas MattKotsenas force-pushed the refactor/msbuild-projectcreation-18 branch from 4bec413 to 1038225 Compare June 18, 2026 13:04
@baronfel baronfel merged commit c20713e into dotnet:main Jun 18, 2026
5 checks passed
This was referenced Jun 18, 2026
jas88 added a commit to jas88/SynthEHR that referenced this pull request Jun 25, 2026
Updated
[DotNet.ReproducibleBuilds](https://github.com/dotnet/reproducible-builds)
from 1.2.39 to 2.0.5.

<details>
<summary>Release notes</summary>

_Sourced from [DotNet.ReproducibleBuilds's
releases](https://github.com/dotnet/reproducible-builds/releases)._

## 2.0.5

## What's Changed
* Update versions used in examples to be from latest major by @​Frulfump
in dotnet/reproducible-builds#80
* Fix hostfxr resolution for .NET Framework tasks by @​MattKotsenas in
dotnet/reproducible-builds#85
* Upgrade MSBuild.ProjectCreation to 18.0.0 by @​MattKotsenas in
dotnet/reproducible-builds#84

## New Contributors
* @​Frulfump made their first contribution in
dotnet/reproducible-builds#80

**Full Changelog**:
dotnet/reproducible-builds@v2.0.2...v2.0.5

## 2.0.2

## What's Changed
* Fix hostfxr probing path for musl-based runtimes by @​MattKotsenas in
dotnet/reproducible-builds#75


**Full Changelog**:
dotnet/reproducible-builds@v2.0.1...v2.0.2

## 2.0.1

## What's Changed
* Warn if missing global.json to enforce consistent SDK versions by
@​MattKotsenas in dotnet/reproducible-builds#73


**Full Changelog**:
dotnet/reproducible-builds@v1.2.39...v2.0.1

Commits viewable in [compare
view](dotnet/reproducible-builds@v1.2.39...v2.0.5).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DotNet.ReproducibleBuilds&package-manager=nuget&previous-version=1.2.39&new-version=2.0.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Upgrade `DotNet.ReproducibleBuilds` from 1.2.39 to 2.0.5 to improve
reproducibility and fix hostfxr resolution. Bumps the central version
and removes an unnecessary `PackageReference` from
`SynthEHR.SourceGenerators`.

- **Bug Fixes**
- Removed stray `PackageReference` from `SynthEHR.SourceGenerators` to
keep the package centralized and fix TestPackagesDocumentCorrect.

- **Migration**
- Ensure a `global.json` is present to pin the .NET SDK version (2.x
warns if missing).

<sup>Written for commit a25fb68.
Summary will update on new commits.</sup>

<a href="https://cubic.dev/pr/jas88/SynthEHR/pull/88?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James A Sutherland <j@sutherland.pw>
jas88 added a commit to jas88/DicomTypeTranslation that referenced this pull request Jun 25, 2026
Updated
[DotNet.ReproducibleBuilds](https://github.com/dotnet/reproducible-builds)
from 1.2.39 to 2.0.5.

<details>
<summary>Release notes</summary>

_Sourced from [DotNet.ReproducibleBuilds's
releases](https://github.com/dotnet/reproducible-builds/releases)._

## 2.0.5

## What's Changed
* Update versions used in examples to be from latest major by @​Frulfump
in dotnet/reproducible-builds#80
* Fix hostfxr resolution for .NET Framework tasks by @​MattKotsenas in
dotnet/reproducible-builds#85
* Upgrade MSBuild.ProjectCreation to 18.0.0 by @​MattKotsenas in
dotnet/reproducible-builds#84

## New Contributors
* @​Frulfump made their first contribution in
dotnet/reproducible-builds#80

**Full Changelog**:
dotnet/reproducible-builds@v2.0.2...v2.0.5

## 2.0.2

## What's Changed
* Fix hostfxr probing path for musl-based runtimes by @​MattKotsenas in
dotnet/reproducible-builds#75


**Full Changelog**:
dotnet/reproducible-builds@v2.0.1...v2.0.2

## 2.0.1

## What's Changed
* Warn if missing global.json to enforce consistent SDK versions by
@​MattKotsenas in dotnet/reproducible-builds#73


**Full Changelog**:
dotnet/reproducible-builds@v1.2.39...v2.0.1

Commits viewable in [compare
view](dotnet/reproducible-builds@v1.2.39...v2.0.5).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DotNet.ReproducibleBuilds&package-manager=nuget&previous-version=1.2.39&new-version=2.0.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Upgrade `DotNet.ReproducibleBuilds` to 2.0.5 to improve reproducible
build reliability, fix hostfxr resolution (including musl-based
runtimes), and warn when `global.json` is missing.

- **Dependencies**
- Bumped `DotNet.ReproducibleBuilds` from 1.2.39 to 2.0.5 in
`Directory.Packages.props`.

<sup>Written for commit 9ec90d2.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/jas88/DicomTypeTranslation/pull/90?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James A Sutherland <j@sutherland.pw>
This was referenced Jun 25, 2026
DavidDeSloovere pushed a commit to alistar-dev/FluentEmail.Graph that referenced this pull request Jul 1, 2026
Updated
[DotNet.ReproducibleBuilds](https://github.com/dotnet/reproducible-builds)
from 2.0.2 to 2.0.5.

<details>
<summary>Release notes</summary>

_Sourced from [DotNet.ReproducibleBuilds's
releases](https://github.com/dotnet/reproducible-builds/releases)._

## 2.0.5

## What's Changed
* Update versions used in examples to be from latest major by @​Frulfump
in dotnet/reproducible-builds#80
* Fix hostfxr resolution for .NET Framework tasks by @​MattKotsenas in
dotnet/reproducible-builds#85
* Upgrade MSBuild.ProjectCreation to 18.0.0 by @​MattKotsenas in
dotnet/reproducible-builds#84

## New Contributors
* @​Frulfump made their first contribution in
dotnet/reproducible-builds#80

**Full Changelog**:
dotnet/reproducible-builds@v2.0.2...v2.0.5

Commits viewable in [compare
view](dotnet/reproducible-builds@v2.0.2...v2.0.5).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=DotNet.ReproducibleBuilds&package-manager=nuget&previous-version=2.0.2&new-version=2.0.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants