Andrey on .NET | Исполование путей более 260 символов до файлов проектов

Исполование путей более 260 символов до файлов проектов

ToolsНаверное у многих разработчиков решения (solution) рассортированы по различным папкам: рабочие, личные, экспериментальные и т.д. Проекты в них также могут иметь разветвленную структуру и длинные имена. При таком подходе, рано или поздно, можно получить ошибку при сборке проекта из-за того, что путь до файла превысил 260 символов. Однако c Visual Studio 2019 и MSBuild 16 это не проблема. Надо только сделать небольшую настройку.

Настраиваем Windows

Windows, начиная с Windows 10 и Windows Server 2016, поддерживает длинные пути до файлов. Но по-умолчанию эта настройка выключена. Чтобы ее задействовать необходимо изменить один параметр в Local Computer Policy:

  1. Запустите gpedit.msc из меню Start или нажав WinKey+R
  2. Перейдите в раздел Local Computer Policy > Computer Configuration > Administrative Templates > All Settings.
  3. Установите параметр Enable Win32 long paths в значение Enabled.

Local computer policy

Настраиваем приложения

Можно заметить, что в описании настройки речь идет о поддержке длинных путей для приложений, у которых это заявлено в манифесте. Он должен содержать следующий параметр:

  ...
  <windowsSettings>
    <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
  </windowsSettings>
  ...

Кстати, Visual Studio 2019 и MSBuild 16 уже имеют эту настройку. Поэтому теперь выборе где разместить проект можно не ограничиваться длинной пути в 260 символов. Только не стоит забывать, что при использовании сервера сборки (build server) на нем также необходимо выполнить данную настройку.

Комментарии (1) -

Осталось в NuGet добавить поддержку длинных путей.
https://github.com/NuGet/Home/issues/3324

Добавить комментарий