Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Breaking change]: .User file is now imported in outer builds #38792

Closed
1 of 3 tasks
maridematte opened this issue Dec 15, 2023 · 1 comment · Fixed by #39487
Closed
1 of 3 tasks

[Breaking change]: .User file is now imported in outer builds #38792

maridematte opened this issue Dec 15, 2023 · 1 comment · Fixed by #39487
Assignees
Labels
breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 8 Work items for the .NET 8 release in-pr This issue will be closed (fixed) by an active pull request. 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@maridematte
Copy link
Contributor

maridematte commented Dec 15, 2023

Description

Previously the SDK only imported the .user file configurations in inner builds during a cross targeted build. With dotnet/msbuild#9444 it will now also be imported on outer builds, and it may cause breaks when building projects locally.

Version

.NET 8 GA

Previous behavior

When adding a .user file for extra local configurations in builds in cross targeted builds, it only imported in inner builds. If the user defined frameworks with <TargetFramework> it would import the .user file normally. If <TargetFrameworks> (note the 's' in the end) the .user file would be imported for every internal build for each framework (even if just one was defined), but not for the outer build, which runs certain targets again.

New behavior

When using the <TargetFrameworks> tag to define targeted frame works, the build will not import the .user file on all internal builds and on the outer build.

Type of breaking change

  • Binary incompatible: Existing binaries may encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code may require source changes to compile successfully.
  • Behavioral change: Existing binaries may behave differently at run time.

Reason for change

The .user config file being imported in the outer build was an expected behavior in MSBuild that was not happening.

Recommended action

This change should not affect any deployments or CIs, just local builds. Review the configurations that are expected on the outer build if the extra configurations change how it is processed.

Feature area

SDK

Affected APIs

No response


Associated WorkItem - 206395

@maridematte
Copy link
Contributor Author

We have changed the version that this is coming out. So we're shipping with VS17.9 / SDK 8.0.2xx

@gewarren gewarren added the 🏁 Release: .NET 8 Work items for the .NET 8 release label Jan 12, 2024
@gewarren gewarren added the 🗺️ reQUEST Triggers an issue to be imported into Quest. label Feb 2, 2024
@github-actions github-actions bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels Feb 2, 2024
@gewarren gewarren moved this from 🔖 Ready to 👀 In review in dotnet/docs February 2024 sprint Feb 10, 2024
@dotnet-policy-service dotnet-policy-service bot added the in-pr This issue will be closed (fixed) by an active pull request. label Feb 12, 2024
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in dotnet/docs February 2024 sprint Feb 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change Indicates a .NET Core breaking change 🏁 Release: .NET 8 Work items for the .NET 8 release in-pr This issue will be closed (fixed) by an active pull request. 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
No open projects
Status: ✅ Done
Development

Successfully merging a pull request may close this issue.

3 participants