Разрешить xamarin android "слишком длинный путь" без перемещения
Я недавно начал получать ошибку ResolveLibraryProjectImports: PathTooLongException
на моем проекте Android Xamarin в xamarin.forms
, Когда я смотрю онлайн, все решения говорят о переносе проекта. Есть ли способ изменить свойства проекта или способ переназначения, который может помочь мне избежать перемещения всего проекта?
Обновить:
Из-за щедрости и поскольку вопрос возник ниже, вот почему я ищу альтернативное решение для перемещения:
Иерархия каталогов существует по причине. Если бы не у каждого была бы целая куча папок в корне. Они разработаны, чтобы позволить нам организовать все. Это же мой случай. Я организовал все папки, основанные на облаке, кодах, фреймворках и т. Д. Из всех фреймворков, с которыми я работал, мне никогда не приходилось перемещать проект из-за внутренних требований проекта. Таким образом, я не вижу причины, по которой мне нужно перемещать проект из всех этих папок (что также означает "из облака") и выбрасывать их в каком-то месте отдельно от остальных проектов, просто потому, что проект запрашивает его.
3 ответа
Я сталкивался с той же проблемой раньше, вот что я нашел:
Windows имеет ограничение максимальной длины пути. Это можно увидеть в Windows Naming Files, Paths и Namespaces:
Ограничение максимальной длины пути В Windows API (с некоторыми исключениями, обсуждаемыми в следующих параграфах), максимальная длина пути составляет MAX_PATH, которая определяется как 260 символов. Локальный путь структурирован в следующем порядке: буква диска, двоеточие, обратная косая черта, компоненты имен, разделенные обратной косой чертой, и завершающий нулевой символ. Например, максимальный путь на диске D равен "D:\some 256-символьная строка пути", где "" представляет невидимый завершающий нулевой символ для текущей системной кодовой страницы. (Символы < > используются здесь для наглядности и не могут быть частью допустимой строки пути.) Это причина, по которой у вас возникла проблема.
Вы можете сократить путь к каталогу вашего проекта, чтобы решить эту проблему, другое решение - использовать инструмент длинного пути. Но, как сказал ПирсБогган:
Самый простой способ избежать этой проблемы - переместить ваш источник на диск C:/ (или в другое место с меньшим количеством символов в пути).
Обновить:
Проблема была исправлена в Xamarin.Android 8.0.2.1
и эта версия включена в выпуск Visual Studio 2017 версии 15.4.2. Вы можете прочитать этот документ:
https://developer.xamarin.com/releases/android/xamarin.android_8/xamarin.android_8.0/
Буквально каждый новый проект Xamarin Forms, который я пытаюсь создать, впервые вызывает ошибку MAXPATH в проекте Android (потому что мой путь к папке Github по умолчанию уже длинный).
У меня есть простое и стандартное исправление, которое работает для меня в 100% случаев, потому что в моем случае виновата промежуточная папка или папка [obj].
Попробуйте следующее: откройте файл.csproj в блокноте. Убедитесь, что это.csproj для проекта Android. Под первым<PropertyGroup>
тег добавить этот элемент:
`</BaseIntermediateOutputPath>C:/Intermediate/Android/YourProjectName</BaseIntermediateOutputPath>`
Теперь просто перезагрузите проект и попробуйте снова построить. Надеюсь это поможет!
Я тоже столкнулся с этой проблемой. Обновление VS 2017 до 15.4.0 исправило это для меня. Перемещение ближе к C:\ ничего не изменило.
У меня была эта проблема даже при перемещении моего проекта в корень диска. Однако после обновления Visual Studio до последней версии (15.7.0) в IDE была добавлена возможность изменить каталог вывода архива:
Tools --> Options--> Android Settings : Archives Location
Если установить для этого местоположения каталог, максимально близкий к корневому каталогу диска (например, D:\Archives), эта ошибка исчезнет.