-
Notifications
You must be signed in to change notification settings - Fork 696
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
Add better handling of AggregateExceptions in static graph-based restore #4809
Add better handling of AggregateExceptions in static graph-based restore #4809
Conversation
src/NuGet.Core/NuGet.Build.Tasks.Console/MSBuildStaticGraphRestore.cs
Outdated
Show resolved
Hide resolved
Before:
After:
/cc @AArnott |
It looks good. But please advise the MSBuild team to consider making a similar change in their own logger method. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know the test wouldn't do as much, but we can at least assert the deconstruction is happening.
I'm fine with whatever you decide.
test/NuGet.Core.FuncTests/Msbuild.Integration.Test/MsbuildRestoreTaskTests.cs
Outdated
Show resolved
Hide resolved
await SimpleTestPackageUtility.CreateFolderFeedV3Async( | ||
pathContext.PackageSource, | ||
packageX); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packageX
doesn't seem to be used in any of the asserts, so I believe it can be removed from the arrange and save a little time not needing to create the nupkg.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without a PackageReference I get this:
Nothing to do. None of the projects specified contain packages to restore.
But it does look like I can get rid of the package creation since its not actually used
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This tells me the project is not SDK style, and that the csproj does not contain <ProjectRestoreStyle>PackageReference</ProjectRestoreStyle>
(I'm not 100% sure I got the property name right).
Is it worthwhile improving our test infrastructure code to do this?
I've filed dotnet/msbuild#7985 |
My unit test is failing because the version of MSBuild we test against doesn't have the newer functionality. I'm going to have the test only have one invalid project which exhibits the same behavior in 17.3 and 17.4. |
Insert 6.4.0-rc.123 into rel/d17.4 on 11/07/2022 23:47:12 * tag '6.4.0.123': (60 commits) fix a logic error that caused AbandonedMutexException while executing migrations (release-6.4.x) (NuGet#4895) unblock source build failing due to fatal: transport 'file' not allowed error (NuGet#4867) (NuGet#4874) Signing: update to August 2022 CTL (NuGet#4791) (NuGet#4850) Merged PR 422933: Prefer BCL Directory create API over helper class (7.0.1xx-rc2) Fix empty combobox when package is not present in project file (NuGet#4844) (NuGet#4848) Fix component detection alert for microsoft.owin package (NuGet#4841) (NuGet#4845) Make release label RC, move to escrow mode Adds special case to include transitive origins in GetInstalledAndTransitivePackagesAsync API (NuGet#4824) Add longPathAware manifest to NuGet.Build.Tasks.Console (NuGet#4830) VsPackageInstallerServices should not post ProjectNotNominatedException faults (NuGet#4814) Skip test GetOrCreateAsync_WithUnhandledExceptionInPlugin_Throws (NuGet#4831) Improve OptProf pipeline job run names (NuGet#4825) Increase HttpClientHandler.MaxConnectionsPerServer to 64 to improve PM UI performance in Visual Studio (NuGet#4798) Suppress CA2213 warnings to unblock dev branch (NuGet#4823) Ensure IsVsOfflineFeed is calculated correctly on 64-bit machines (NuGet#4817) Add better handling of AggregateExceptions in static graph-based restore (NuGet#4809) Add Component Detection task into each pipeline (NuGet#4813) Localizes nuget.exe with default, embedded resource assembly lookup (NuGet#4773) Removes BrowseObjectBase class in NuGet Solution Explorer (NuGet#4807) Improve TryCreateContext (NuGet#4762) ...
Bug
Fixes: NuGet/Home#12100
Regression? Last working version:
Description
A behavior change in MSBuild's static graph API means that an
AggregateException
is now thrown instead of anInvalidProjectFileException
. This change updates the exception handling in static graph-based restore to use a single method for handling logging of exceptions.AggregateException
, call theLogErrorFromException()
method on each inner exceptionInvalidProjectFileException
, call the MSBuild logging API that surfaces the extra information contained in the exceptionPR Checklist
PR has a meaningful title
PR has a linked issue.
Described changes
Tests
Documentation