Подтвердить что ты не робот

Не удалось выполнить задачу ResolveLibraryProjectImports

У меня есть проект Xamarin, который основан на MvvmCross. Проект предназначен как для iOS, так и для Android. Я открыл этот проект в Visual Studio 15. Я получил несколько ошибок, которые я решил в кратчайшие сроки. Есть некоторые ошибки, которые застряли, и я не смог их исправить даже после поиска в Google и в Stackoverflow. Я попробовал каждый метод, найденный в Stackoverflow, но все еще все оставшиеся ошибки есть. В этом проекте используются сторонние библиотеки, такие как RestSharp и BoxApi.V2 (еще немного)

Я публикую свой журнал ошибок ниже.

Severity    Code    Description Project File    Line    Suppression State
Error       The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'RestSharp(Android).dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection'1 jars, ICollection'1 resolvedResourceDirectories, ICollection'1 resolvedAssetDirectories, ICollection'1 resolvedEnvironments)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)

Эта ошибка повторяется для всех проектов, включенных в это решение. Так что я получаю эту ошибку несколько раз.

Я также хочу добавить, что проект был ранее построен на MAC, и я использую Windows, это создает проблемы совместимости или кросс-ОС? Я проверил все ссылки на сборки и все работает нормально.

4b9b3361

Ответ 1

У меня буквально было это с новым приложением Xamarin.Forms в Visual Studio 2017.

Основная причина заключается в том, что я разрешаю VS2017 создавать проект в нем по умолчанию "C:\Users\Dave\Documents\Visual Studio 2017\Projects", и это привело к тому, что один из файлов теперь имеет путь, который он слишком длинный.

Я переместил решение в корень моего диска D, и он создает без проблем.

Ответ 2

Ваша проблема, скорее всего, связана с этой на форумах Xamarin и this bugzilla. Без воспроизводимого образца все, что я могу вам посоветовать, это:

  • Обновление Xamarin для Visual Studio, Xamarin.Android и Xamarin.iOS к последним стабильным версиям
  • Очистка и восстановление
  • Удаление всех папок bin и obj из каталогов проектов
  • Перезапуск Visual Studio/ПК

В противном случае вряд ли кто-нибудь сможет помочь вам без воспроизводимого образца и, возможно, ваших журналов Xamarin.

Ответ 4

Была такая же проблема. Вот мое решение

  • Перезапустить Visual Studio
  • Откройте проект
  • Очистите решение
  • Восстановить решение
  • Закрыть решение
  • Повторно открыть проект

Ответ 5

Я работаю с XAML (.xaml) и файлом с выделенным кодом (.xaml.cs). Моя проблема заключалась в том, что у меня было одно и то же имя страницы, но в разных пространствах имен. XAML и код файла не совпадают. Наконец, это была проблема с моим XAML, потому что, конечно, он не мог найти элемент представления.

Ответ 6

Ну, для меня проблема была в моем файле xaml...

Каким-то образом при установке границ макета я использовал '.' в качестве разделителя вместо ','

например

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3" должен был быть AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"

Следовательно, изменяя "." чтобы, решил проблему

Ответ 7

Это случилось со мной, когда я случайно установил пакеты nuget в библиотеку классов, которая была включена в решение. Мне просто нужно было удалить пакеты из проекта библиотеки классов.

Ответ 8

В моем случае эта проблема возникла с другим, связанным с моим xaml.
Мне пришлось решить вторую, чтобы эта ошибка исчезла. Я очищаю класс новым содержимым по умолчанию, а затем очищаю все проекты и решения. Наконец, закройте визуальную студию, откройте ее, запустите проект и он работает.

Ответ 9

Это все еще свежая проблема, после всех попыток, я хотел попытаться сдвинуть код по более короткому пути - однако это сложная работа, так как управление svn усложнится, поэтому я хотел сначала проверить, действительно ли путь является проблемой, Для этого нужно было проверить, где хранятся Android SDK. Я на Mac, и расследование показало, что путь SDK был длиннее пути моего проекта. Плюс я попробовал с новым проектом, и это правильно компилировалось.

Поэтому я отбросил идею сдвига. Вместо этого я использовал SVN и сравнил то, что изменилось с момента последней правильной сборки.

Сравнение показало, что файл проекта droid как-то ссылается на файл проекта iOS, похоже, это ошибка Visual Studio. Так что я отменил изменения и затем все вернулось к норме.

Ответ 10

я получаю ту же ошибку, и обычно я решаю ее, закрывая все другие открытые решения xamarin, и есть еще один способ, которым я решил эту проблему → перейти к диспетчеру задач и найти службу MSBUILD и завершить эту службу → очистить ваше решение → восстановить

Ответ 11

Мы также столкнулись с этим, похоже, что это некое состояние гонки при построении нескольких проектов и очень глубокое/сложное дерево зависимостей (в нашем примере более 100 проектов).

Единственный способ решить эту проблему (кроме непрерывной перестройки) - отключить возможности параллельной сборки Visual Studio 2017 (Tools-> Параметры-> Проекты и Solutions-> Построить и Run-> Максимальное число "1"). параллельных сборок проекта).

Проблема, по-видимому, находится в ResolveLibraryProjectImports.cs(https://github.com/xamarin/xamarin-android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasmprary Условие с их логикой сократить имена файлов.

Есть нулевые тесты вокруг этого, что означает, что, скорее всего, есть какой-то хитрый код.

Я собираюсь попытаться больше копать и раскрыть проблему на GitHub, но найти надежное репо, вероятно, будет очень сложно.

Ответ 12

Это сработало для меня:

  • Чистый раствор
  • Создайте один проект за раз, начиная сверху - НЕ перестраивайте решение - только один проект за раз
  • Попробуйте также удалить содержимое папки Obj и bin
  • Когда закончите, удалите проект из эмулятора или устройства, прежде чем запустить его снова

Надеюсь это поможет.

Ответ 13

Все еще есть проблемы? Проверьте ваши пространства имен и код xaml. Иногда, когда вы копируете/вставляете некоторые файлы, это может быть проблемой.

Ответ 14

Не уверен, поможет ли это кому-нибудь из вас. Для моего случая я комментирую ошибочный класс (например, с отсутствующими ссылками), и он начнет собирать все и строить снова.

Ответ 15

Вероятно, это проблема с вашими ссылками/ссылками?

Если вы посмотрите под каждой папкой справочных документов проекта в обозревателе решений, любые ссылки, которые визуальная студия не может найти, удалить и повторно добавить (щелкните правой кнопкой мыши ссылку для добавления).

Ответ 16

Я столкнулся с этой проблемой тысячу раз на самом деле очень просто, когда вы создаете новую визуальную студию проекта, создаете ее на C: Drive в своей папке по умолчанию, все, что вам нужно сделать, - это переместить ваш проект на другой диск Like D:, E: что бы вы ни старались сохранить в корне вашего диска, т.е. если вы переместите его в D: тогда поместите его так, как это D/Project/solutionFile

Ответ 17

Короткий ответ:

  • Переместите каталог, содержащий ваше решение, на Рабочий стол

ИЛИ

  • Удалить ссылки на проблемную библиотеку (в разделе "Ссылки" )
  • Закрыть Visual Studio
  • В проводнике Windows Перейдите в каталог проекта вашего приложения (место, где находится ваш .sln файл Projectname).
  • Показать скрытые элементы (вкладка "Просмотр", "Проверить скрытые элементы" )
  • Удалите скрытую папку "vs", и если есть файл с именем "sou", удалите это тоже.
  • Перезапустите Visual Studio и запустите решение.

Я столкнулся с тем же решением, что и OP. Это решение ошибки, которую имел OP. Я рассмотрел другую причину ошибки, которая может возникнуть для других ниже.

Объяснение: Обычно возникают два разных типа проблем. Первый включает файлы проекта, слишком большие для System.IO.reader, приводящие к ошибке, включая некоторый текст вдоль строк "file.path слишком долго".

Вторая причина ошибки связана с тем, что VS формирует правильное имя для dll, но является неправильным путем для ресурса проекта. Примером может быть VS с использованием "App1\bin\Debug\net452\temp.dll" вместо "App1\bin\Debug\net1.6\temp.dll".

Ответ 18

Вот проблема: System.IO.PathTooLongException: указанный путь, имя файла или оба слишком велики. Полноценное имя файла должно быть менее 260 символов, а имя каталога должно быть меньше 248 символов.

Попробуйте переместить проект в другое место, например "C:/", или измените название проекта на что-то более краткое

Ответ 19

Я столкнулся с той же проблемой, и ни одно из вышеупомянутых решений не сработало. После замечаний и ошибок в списке, касающихся криптографии, я понял, что это должно быть связано с включением FIPS (требуется VPN-клиентом).

Xamarin Compile Time Error

Отключив FIPS и перезапустив Visual Studio, проблема была решена.

enter image description here

Ответ 20

У меня тоже была эта ошибка. В моей ситуации это сопровождалось Xamarin.Forms.Maps импортом Xamarin.Forms.Maps в один из файлов xaml.g.cs У меня были все правильные утверждения. В среде IDE не было ошибок, но она постоянно Xamarin.Forms мне, что Xamarin.Forms не имеет карты пространства имен. Он генерировался в MapPage.xaml.g.cs как Xamarin.Forms.Map вместо Xamarin.Forms.Maps.Map и я не смог принудительно исправить это вручную. Оказалось, однако, что предложенная xmlns:maps для карт была причиной проблемы. В среде IDE было указано, что мне нужно использовать "http://xamarin.com/schemas/2014/forms" но правильное пространство имен - "clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps". После того, как я изменил это, он смог собрать мой App1.dll

Ответ 21

Вот так я и получил ошибку. В StackLayout я добавил свойство Padding и разделил 4 цифры пробелом, а не запятой. Чтобы найти ошибку, мне пришлось отдельно закомментировать элементы управления XAML и пересобрать, чтобы изолировать, где находится ошибка, и в конце концов я нашел строку проблемы. Так что в основном это было сообщение об ошибке синтаксиса в моем коде XAML! На любом другом языке я ожидаю, что мне сообщат, что это за ошибка, чтобы я мог ее исправить за считанные секунды. Но это заняло у меня несколько часов - хотя в следующий раз я знаю, что делать.

Ответ 22

Эта проблема также может возникнуть, если по ошибке у вас возникла какая-либо синтаксическая ошибка, как в моем случае: в ListView присутствовали две текстовые ячейки -

<ListView x:Name="ProductsView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding ProductId}" />
            <TextCell Text="{Binding ProductDescription}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Я просмотрел другие сообщения по этой проблеме и обнаружил, что та же самая проблема возникла из-за наличия синтаксических ошибок, о которых VS не сообщает напрямую. Так что поищите это, иначе переустановите совместимую версию xamarin.forms → clean solutions → rebuild путем повторного открытия VS.

Ответ 23

Я столкнулся с той же проблемой сегодня. После двух дней поиска я нашел решение здесь. Проблема заключается в том, что библиотека Xamarin.Forms не устанавливает все зависимые пакеты Nuget при первом создании проекта, выбирая кросс-платформенный шаблон проекта Mobile (Xamarin.Forms) из Visual Studio 2017. Мне нужно вручную установить обновленные зависимые пакеты nuget, чтобы создать Проект успешно Также удалили и добавили Xamarin.Forms в конце, который решает проблему.

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

Ответ 24

xmlns:maps="clr-namespace:Xamarin.Forms.Maps; assembly=Xamarin.Forms.Maps"

Проблема была из-за промежутка между точкой с запятой выше и сборкой, как указано выше. Как только разрыв закрывается, он компилируется.