Ошибка Azure DevOps MSB4184: выражение «[MSBuild]:: NormalizePath (путь)» не может быть оценено

#azure-devops

#azure-devops

Вопрос:

В моей команде у нас есть проект с очень длинным путем. Когда я пытаюсь скомпилировать решение проекта в задаче сборки Visual Studio, мы получаем ошибку:

ошибка MSB4184: не удается вычислить выражение «[MSBuild] :: NormalizePath (путь)». Путь «path» превышает максимальный предел пути операционной системы. Полное имя файла должно содержать менее 260 символов.

Мы используем автономные агенты. Я пытаюсь исправить эту проблему, включив длинные пути в Windows 10 и добавив dword FileSystem LongPathsEnabled в реестр агентов. К сожалению, проблема все еще возникает, что я могу сделать для решения?

Ответ №1:

Согласно проблеме на github: Начиная с версии Visual Studio 2019 Preview 2 (которая включает MSBuild 16.0.360-preview), MSBuild.exe теперь (начиная с # 3507) выбирается поддержка длинных путей. Но это не значит, что все работает, просто потому, что MSBuild работает, это не значит, что ваша сборка будет, потому что задействовано много других инструментов. devenv.exe , основной процесс Visual Studio, еще не настроен на поддержку. Это означает, что изменения MSBuild повлияют только на сборки командной строки.

Поэтому я боюсь, что длинный путь в настоящее время не поддерживается в задаче сборки Visual Studio. До сих пор в нашем официальном предложении по функциям для форума сообщества разработчиков в нем было такое предложение. Вы можете прокомментировать и проголосовать за него там.

Кроме того, кажется, что в 32-разрядной версии нет такого раздражения (восстанавливает и создает без проблем).