Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WHAT
🤖 Generated by Copilot at 9274475
This pull request introduces a new logger for MSBuild events using
LogProvider
and enhances the error reporting with more detailed messages. It affects theLibrary.fs
file in theIonide.ProjInfo
project.🤖 Generated by Copilot at 9274475
📝🛠️🚀
WHY
We were missing log output failure reasons on the Graph path. Additionally we can now log more output. This should help narrow down why project loads fail for people.
Log output
HOW
🤖 Generated by Copilot at 9274475
msBuildToLogProvider
that uses theLogProvider
library to log MSBuild events with different levels and context (link)logger
tostringWriterLogger
to avoid confusion (link)stringWriterLogger
and one usingmsBuildToLogProvider
, and pass them to thecreateLoggers
function (link)createLoggers
function to return both logger instances when thebinaryLogs
parameter isOff
orWithin dir
(link, link)msbuildErrors
to thehandleError
function that takes a string containing the MSBuild messages from theStringWriter
instance (link)StringWriter
instance to a local variablemsbuildMessage
after theBuildManager
finishes building the projects (link)msbuildMessage
variable to thehandleError
function when theresult
indicates a failure (link)result.OverallResult
value and include themsbuildMessage
variable in the error log when the result is notSuccess
(link)msbuildErrors
parameter to thehandleError
function when an exception is thrown outside theBuildManager
scope (link)