Skip to content

Commit

Permalink
VisualStudioHelpers.ps1 stop enabling 8.3 filename creation (#9862)
Browse files Browse the repository at this point in the history
The bug that prompted enabling 8.3 filename creation was fixed 5 years ago, see dotnet/android#3407:
> Fix included in Xamarin.Android 10.1.0.30.
>
> Fix included on Windows in Visual Studio 2019 version 16.4.

We're on VS 2019 16.11: https://github.com/actions/runner-images/blob/98150396188d19c21a7d7c596cf4a4d7609bb12a/images/windows/Windows2019-Readme.md?plain=1#L233

8.3 filename creation is known to hurt file creation performance, especially when there are a large number of similarly named files in the same folder:
* https://learn.microsoft.com/en-us/archive/blogs/josebda/windows-server-2012-file-server-tip-disable-8-3-naming-and-strip-those-short-names-too
* https://www.linkedin.com/pulse/dont-forget-disable-short-filenames-83-servers-folders-wes-brown
* https://deep.data.blog/2013/06/19/debugging-story-slowness-due-to-ntfs-short-file-8-3-name-generation/

I created a new VM with the base Azure Marketplace Windows 2019 image and confirmed that 8.3 name generation is disabled by default for both the OS and temp disk:
```
fsutil 8dot3name query C:
The volume state is: 1 (8dot3 name creation is disabled).
The registry state is: 2 (Per volume setting - the default).

Based on the above settings, 8dot3 name creation is disabled on C:

fsutil 8dot3name query D:
The volume state is: 1 (8dot3 name creation is disabled).
The registry state is: 2 (Per volume setting - the default).

Based on the above settings, 8dot3 name creation is disabled on D:
```

This might help a bit with actions/cache#752, although I haven't tested it, and AFAICT it's unlikely make an order of magnitude difference.
  • Loading branch information
congyiwu committed May 16, 2024
1 parent e11ab1f commit 5ecfd27
Showing 1 changed file with 0 additions and 9 deletions.
9 changes: 0 additions & 9 deletions images/windows/scripts/helpers/VisualStudioHelpers.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,6 @@ Function Install-VisualStudio {
Test-FileSignature -Path $bootstrapperFilePath -ExpectedThumbprint $SignatureThumbprint

try {
Write-Host "Enable short name support on Windows needed for Xamarin Android AOT, defaults appear to have been changed in Azure VMs"
$shortNameEnableProcess = Start-Process -FilePath fsutil.exe -ArgumentList ('8dot3name', 'set', '0') -Wait -PassThru

$shortNameEnableExitCode = $shortNameEnableProcess.ExitCode
if ($shortNameEnableExitCode -ne 0) {
Write-Host "Enabling short name support on Windows failed. This needs to be enabled prior to VS 2017 install for Xamarin Andriod AOT to work."
exit $shortNameEnableExitCode
}

$responseData = @{
"channelUri" = $channelUri
"channelId" = $channelId
Expand Down

0 comments on commit 5ecfd27

Please sign in to comment.