Разрешить 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), эта ошибка исчезнет.

Другие вопросы по тегам