Michal Strehovský
banner
migeel.sk
Michal Strehovský
@migeel.sk
I help building the .NET runtime at Microsoft. My tweets are my own opinions and/or shitposts, not the official party line.
:(. Well at least they added back (an option) to see seconds to the taskbar clock flyout. Maybe proper small icons will come back next.
November 7, 2025 at 11:02 PM
I really hope the Windows UX team will not go this far. Clearly they are mac users so everything is possible
November 7, 2025 at 2:35 PM
How? Typescript to CIL to native? Go for it. You can also just use stock native AOT. The advantage of bflat is really just no friction crosscompilation.
November 1, 2025 at 12:57 PM
You'd need to debug the compiler. Either try to find the thing that first triggered it yourself or try reaching out to the email address listed at dotnet.microsoft.com/en-us/platfo.... Make sure you're using the latest version of the .NET Native package.
.NET Native release and support policy | .NET
Learn about .NET Native support and lifecycle policies.
dotnet.microsoft.com
July 10, 2025 at 9:17 AM
I recommend migrating to .NET 9, the UWP support is there now: learn.microsoft.com/en-us/window...
Learn to create a Hello World UWP app with XAML and .NET 9 - UWP applications
Use XAML with C# to create a simple Hello, world app that targets the Universal Windows Platform (UWP) and .NET 9 on Windows.
learn.microsoft.com
July 9, 2025 at 4:14 AM
Usually this is some NuGet that targets NetStandard2.0 (so it can be consumed from .NET Native) but uses a very recent language version (NetStandard 2.0 only officially supports up to C# 7.4; things can be hacked to allow higher version but it's unsupported). E.g. github.com/StackExchang...
UWP Native compiler error · Issue #2212 · StackExchange/StackExchange.Redis
I have a UWP project When I want build this solution in Release Configuration I got a below error 1>C:\Users\ssoroosh\.nuget\packages\microsoft.net.native.compiler\2.2.12-rel-31116-00\tools\Microso...
github.com
July 9, 2025 at 4:14 AM
I'm glad you like them! I don't post on medium anymore so the latest things are at migeel.sk
June 19, 2025 at 1:40 PM
I miss the early days of .NET
June 6, 2025 at 12:19 PM
Ah, rookie mistake, this is how you get a very cursed notepad.exe: bsky.app/profile/mige...
It will be equally cursed. The "executing notepad from PowerShell has a 1:10 chance of opening notepad.exe in notepad" still happens, and Open with dialog is going to insist on the Store app
May 29, 2025 at 9:39 PM
If you don't want to retrain muscle memory and don't care for the new notepad: bsky.app/profile/mige...
1/4 Life hack: uninstalling the Notepad app in Windows 11 gives you back old notepad.exe that starts faster and uses less memory. This Notepad is going to be a bit cursed and registry hacks are needed to uncurse it. 👇
May 29, 2025 at 9:37 PM
Ak bude mať Rusko spoločnú hranicu s Moldavskom tak tie mapy dlho aktuálne nebudú.
March 6, 2025 at 12:55 PM
The default value for this property in the SDK is just wrong.
March 4, 2025 at 11:35 PM
Looking forward to read more about your GC adventures!
January 29, 2025 at 11:28 AM
10/ Then add a MyGC_ prefix to all your UnmanagedCallersOnly methods and they should get exported without the prefix.
January 29, 2025 at 6:05 AM
9/ You can write an MSBuild task that takes $(ExportsFile), reads all lines in it, and Regex.Replace(line, @"MyGC_(\w+)", "$1=MyGC_$1") and write back to $(ExportsFile). Have the MSBuild target run BeforeTargets=LinkNative.
January 29, 2025 at 6:05 AM
8/ We want this instead:
EXPORTS
GC_Initialize=MyGC_GC_Initialize
January 29, 2025 at 6:05 AM
7/ By default the DEF file that native AOT compiler creates for UnmanagedCallersOnly("MyGC_GC_Initialize") looks like this:

EXPORTS
MyGC_GC_Initialize
January 29, 2025 at 6:05 AM
6/ That's possible solution one. Possible solution two involves munging the .def file that native AOT compiler creates so that we can use "If the name that you export differs from the name in the DLL, specify the export's name" from the EXPORTS docs.
January 29, 2025 at 6:05 AM
5/ Like this:

EXPORTS
GC_Initialize=MyNativeAotDll.MyGC_Initialize

Put this in a shim.def file and run link.exe like this: `link /dll /def:shim.def /out:shim.dll /noentry`. This produces a DLL with GC_Initialize export that is forwarded to MyGC_Initialize in MyNativeAotDll.
January 29, 2025 at 6:05 AM