Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.NET Framework test runners are not long path aware #5179

Open
DragonTea135 opened this issue Aug 18, 2024 · 1 comment
Open

.NET Framework test runners are not long path aware #5179

DragonTea135 opened this issue Aug 18, 2024 · 1 comment

Comments

@DragonTea135
Copy link

Description

If the test project is targeting .NET Framework version 4.8.1 or lower, long paths can not be used in tests.

Currently, this can be worked around by prepending \\?\ to every long path or by making paths shorter.

This problem may be solved by making test runners long path aware by adding the necessary elements to the testhost manifest:

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
    </windowsSettings>
  </application>

Steps to reproduce

  1. Ensure long paths are enabled in the registry:
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
  1. Clone the sample solution https://github.com/DragonTea135/vstest-long-path-sample.

  2. Run tests using Visual Studio, dotnet test or vstest.console.

Expected behavior

All tests should pass in both net481 and net8 projects.

Actual behavior

Test that creates a directory with a long path in the net481 project throws an exception:

System.IO.PathTooLongException : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

Lower target framework versions give the same result.

Environment

Windows 11 version 23H2
Visual Studio version 17.11.0
VSTest version 17.11.0

@nohwnd
Copy link
Member

nohwnd commented Aug 19, 2024

Thank you for the suggestion, we are currently not adding new features to vstest. I've marked this as up for grabs, in case you or someone else wants to implement the change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants