Open Squall-Leonhart opened 4 months ago
cc @JeremyKuhne
Yeah, it would probably help to link some of these things together. The Path
class also has some details that link to a bigger article based on my posts.
The following Windows doc pages should be linked in:
.NET does implicit \\?\
for you so you don't need to do any of these steps. You also don't need the OS configuration to use \\?\
long paths on .NET Framework 4.6.2 or later.
There is one important caveat for .NET Framework: No matter what you do, you can never run apps or load assemblies from long paths on .NET Framework. .NET Framework native runtime code has fixed MAX_PATH
buffers for paths.
Going by the Blog post here, https://learn.microsoft.com/en-us/archive/blogs/jeremykuhne/net-4-6-2-and-long-paths-on-windows-10, it is inferred you need to meet all 3 criteria
Dotnet 4.6.2 or later Target (and not overriding the behavior with AppContextSwitchOverrides) NTFS Long Path GPO or Corresponding Registry set
<longPathAware xmlns="https://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
in the app.manifestBut this is missing on https://learn.microsoft.com/en-us/dotnet/api/system.io.pathtoolongexception?view=net-8.0