Kirill Osenkov
banner
kirillosenkov.com
Kirill Osenkov
@kirillosenkov.com
(Unofficial) VP of Developer Productivity at Microsoft. Developer tools, engineering systems, .NET, C#, Roslyn, Visual Studio, Editor, WPF, Avalonia, MSBuild.
New in MSBuild Structured Log Viewer:

property trail showing reads and writes during evaluation, in order:

github.com/KirillOsenko...

If you've ever had ordering issues where someone reads your property before you wrote to it, this is the tool for you.
November 7, 2025 at 3:04 AM
Fun fun fun
October 11, 2025 at 7:17 AM
I even see which repository it was (it has been deleted or made private), but there's no way to clear or delete it:
September 29, 2025 at 2:34 AM
I just wrote a Roslyn refactoring! I have to say the Roslyn API is beautiful and I loved the experience.

gist.github.com/KirillOsenko...
September 26, 2025 at 1:02 AM
Phantom notifications bother me way more than they should
September 18, 2025 at 3:09 AM
I just learned that Directory.GetFiles with pattern 1.txt.* matches 1.txt, and it's the OS behavior:
September 5, 2025 at 6:07 PM
OK I really don't like what's going on here:
August 25, 2025 at 5:37 AM
Hmm, I have to confess, this is unexpected for me. Lowercase letters come before uppercase? Intuitively it feels that uppercase should come first?
August 25, 2025 at 5:09 AM
Just saw an Ioniq 5 N on the road for the first time, looks great
August 21, 2025 at 4:49 PM
August 9, 2025 at 4:50 PM
I was always annoyed by the StringBuilder API Append/AppendLine and that it returns a StringBuilder, so not convertible to an Action<string>.

I have recently started using StringWriter instead (it's a very thin wrapper around StringBuilder), but now it's a proper TextWriter, and I'm very happy.
August 2, 2025 at 10:34 PM
added MSBuild target graph visualizer too:
July 30, 2025 at 9:01 PM
yes, your problem is Kahua.generators.dll

not sure what that is, clearly some third-party thing
July 29, 2025 at 5:46 PM
Happy "Unicode calendar emoji shows the actual current date" day to all those who celebrate:

quickinfo.io?calendar
July 17, 2025 at 6:55 PM
New in MSBuild Structured Log Viewer:

Project Reference Graph

New tab that shows the project graph layered by project "height". Each project only references projects above it.

Clicking a project highlights all directly referenced projects above, and all projects below it that reference this one.
June 21, 2025 at 2:33 AM
Ran into the situation again where updating VS broke incremental builds, because a different compiler version is now being stamped into the embedded PDB, invalidating all caches and resulting in different PE file bytes from identical sources.

Glad I invested in the fancy PE parser and differ!
May 31, 2025 at 8:39 PM
I wrote a simple tokenizer and translator from Mandarin to English, that translates per-word, as opposed to whole sentences. Turns out both the tokenizer and the dictionary are freely available and open-source, so I just added them to quickinfo.io:

quickinfo.io?%E6%88%91%E7...
May 27, 2025 at 1:23 AM
May 21, 2025 at 3:59 PM
I don't tweet enough about how amazing the Ultra profiler is:

github.com/xoofx/ultra
May 20, 2025 at 6:25 PM
New feature in MSBuild Structured Log Viewer: Target Graph!

It parses the preprocessed XML and constructs the target graph where edges are BeforeTargets, DependsOnTargets and AfterTargets.
May 12, 2025 at 4:21 AM
MSBuild target graph. Hope it helps!
April 25, 2025 at 2:36 AM
Protest against Trump and Musk in downtown Bellevue 🇺🇦
March 1, 2025 at 7:33 PM
there's also this:
github.com/KirillOsenko...
February 3, 2025 at 7:58 AM
Turns out when Roslyn ships a new compiler it invalidates all deterministic assemblies compiled with the previous compiler that embed the pdb, because the pdb contains the SHA of the compiler:
January 20, 2025 at 7:30 AM
I just needed a cross product for the first time ever so I wrote a Linq-like one:
January 12, 2025 at 5:24 AM