phmonte / Buildalyzer

A utility to perform design-time builds of .NET projects without having to think too hard about it.
MIT License
589 stars 92 forks source link

[Discussion] Any interest in evaluating the use of new MSBuild Server functionality? #209

Closed baronfel closed 4 months ago

baronfel commented 2 years ago

Hello! The MSBuild Performance team is working on an execution mode for MSBuild where it will spawn a long-lived daemon node to handle build requests. This mode would only be available from .NET 7, and currently would be activated by setting an environment variable before execution. We're also looking at enabling the behavior by default for MSBuild usage that comes from the .NET CLI.

Does this sound like something that Buildalyzer would find useful? Are there any specific requirements that would be useful to you to have in the new execution mode?

daveaglick commented 1 year ago

Hey, sorry for the very delayed response on this - it's been a hectic summer on my end (with a few more weeks to go until things settle down).

I think I understand what's being proposed, though still not totally clear on how it's different than the current reusable host nodes (I guess this is a single, long-running "server"?).

Does this sound like something that Buildalyzer would find useful?

I think it would be useful in the sense that any compilations would benefit. Since Buildalyzer does "normal" CLI builds, the main different just being an additional logger, it would likely benefit to. I'm not sure I see any direct benefits specifically to Buildalyzer though (but maybe I'm just not thinking creatively enough).

Are there any specific requirements that would be useful to you to have in the new execution mode?

I don't think so - I've intentionally tried to keep the Buildalyzer instrumentation of MSBuild as lightweight and unobtrusive as possible (I.e. using a logger instead of a new custom MSBuild task). As long as loggers continue to work the same way, the new model seems like it would be seamless and I can't think of anything I'd want directly implemented in addition.

I'm probably missing something here though? Am I thinking of this new model too simplistically?

phmonte commented 4 months ago

Closing issue due to lack of activity, any news open a new issue.