13 февраля 2020
Инструментарий
Наверное у многих разработчиков решения (solution) рассортированы по различным папкам: рабочие, личные, экспериментальные и т.д. Проекты в них также могут иметь разветвленную структуру и длинные имена. При таком подходе, рано или поздно, можно получить ошибку при сборке проекта из-за того, что путь до файла превысил 260 символов. Однако c Visual Studio 2019 и MSBuild 16 это не проблема. Надо только сделать небольшую настройку. |
Настраиваем Windows
Windows, начиная с Windows 10 и Windows Server 2016, поддерживает длинные пути до файлов. Но по-умолчанию эта настройка выключена. Чтобы ее задействовать необходимо изменить один параметр в Local Computer Policy:
- Запустите gpedit.msc из меню Start или нажав WinKey+R
- Перейдите в раздел Local Computer Policy > Computer Configuration > Administrative Templates > All Settings.
- Установите параметр Enable Win32 long paths в значение Enabled.
Настраиваем приложения
Можно заметить, что в описании настройки речь идет о поддержке длинных путей для приложений, у которых это заявлено в манифесте. Он должен содержать следующий параметр:
...
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
...
Кстати, Visual Studio 2019 и MSBuild 16 уже имеют эту настройку. Поэтому теперь выборе где разместить проект можно не ограничиваться длинной пути в 260 символов. Только не стоит забывать, что при использовании сервера сборки (build server) на нем также необходимо выполнить данную настройку.