2017-04-24 66 views
15

Mam projekt xamarin oparty na MvvmCross. Projekt jest przeznaczony zarówno dla IOS, jak i Android. Otworzyłem ten projekt w visual studio 15. Dostałem kilka błędów, które rozwiązałem w mgnieniu oka. Są pewne błędy, które utknęły i nie mogłem ich rozwiązać nawet po przeszukaniu google i na stackoverflow. Próbowałem każdej znalezionej metody na stackoverflow, ale nadal są wszystkie pozostałe błędy. Ten projekt korzysta z bibliotek innych firm, takich jak RestSharp i BoxApi.V2 (kilka innych)Zadanie "ResolveLibraryProjectImports" nieoczekiwanie zakończyło się niepowodzeniem.

Zamieszczam mój dziennik błędów poniżej.

Kod Istotność Opis projektu Linia Plik State Tłumienie Error „ResolveLibraryProjectImports” zadanie nieoczekiwanie nie powiodło się. System.IO.FileNotFoundException: Nie można załadować zespołu "RestSharp (Android), wersja = 0.0.0.0, Culture = neutral, PublicKeyToken = '. Być może nie istnieje w profilu Mono na Androida? File name: 'RestSharp (Android) .dll' na Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (odniesienie AssemblyNameReference, parametry ReaderParameters) na Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (String fullname, ReaderParameters parametry) w Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (ciąg FULLNAME) w Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly (w nazwie pliku łańcuchach) w 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 Micr osoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() w Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() BoxApi.V2 (Mobile)

Błąd jest powtórzenie dla wszystkich projektów uwzględnionych w tym rozwiązaniu. Więc otrzymuję ten błąd wiele razy.

Chcę również dodać, że projekt został wcześniej zbudowany na MAC i używam systemu Windows, czy to sprawia, że ​​niektóre problemy kompatybilności lub krzyżowego systemu operacyjnego? Sprawdziłem wszystkie odniesienia do montażu i wszystkie działają poprawnie.

+0

Jakie wersje Xamarin dla Visual Studio, Xamarin.Android i Androida SDK masz zainstalowane? –

+0

xamarin to najnowsza wersja i mam wszystkie wersje SDK pobrane –

+0

Możesz spróbować odinstalować i zainstalować pakiety pakietów nuget, w tym może RestSharp – Plac3Hold3r

Odpowiedz

25

Dosłownie po prostu miałem to z zupełnie nową aplikacją Xamarin.Forms w Visual Studio 2017.

Główną przyczyną wydaje się być to, że pozwoliłem VS2017 utworzyć projekt w jego domyślnej lokalizacji "C: \ Users \ Dave \ Documents \ Visual Studio 2017 \ Projects", co spowodowało, że jeden z plików ma teraz ścieżkę które to zbyt długo.

Przeniosłem rozwiązanie do katalogu głównego dysku D i tworzy on bez problemu.

+0

Szczęśliwy, że twój kod działa dobrze –

+0

Pracował dla mnie :) –

+1

Powinieneś zdobądź nagrodę Nobla za to rozwiązanie! Dziękuję Ci. –

5

Twój problem najprawdopodobniej jest powiązany z postem na this na forach Xamarin i this wpisie bugzilla. Bez powtarzalnej próbki, wszystko co mogę doradzić spróbować to:

  • Aktualizacja Xamarin dla Visual Studio, Xamarin.Android i Xamarin.iOS do najnowszej stabilnej wersji
  • Czyszczenie i odbudowy
  • Usuwanie wszystkich z bin i obj foldery z katalogów projektów
  • Ponowne Visual Studio/komputer

przeciwnym razie wszystkie tha t, prawdopodobnie nie będzie nikogo, kto może ci pomóc bez powtarzalnej próbki i potencjalnie twoich dzienników Xamarin.

+0

próbowałem tego, ale spróbuję ponownie przez usunięcie i jeśli to działa, przyjmuję tę odpowiedź –

+1

To nie wydaje się właściwe ... – aegbert

0

To prawdopodobnie problem z Twoimi referencjami/zestawami referencyjnymi?

Jeśli zajrzysz pod folder referencji każdego projektu w eksploratorze rozwiązań, wszelkie odniesienia, które studio graficzne nie może znaleźć, usunąć i ponownie dodać (kliknij prawym przyciskiem myszy folder odniesienia, aby dodać).

0

Mam do czynienia z tym problemem tysiąc razy to jest bardzo proste, gdy tworzysz nowy projekt studio wizualne tworzy je w C: Dysk w domyślnym folderze wszystko, co musisz zrobić, to przenieść swój projekt na inny dysk Tak jak D :, E: cokolwiek upewnia się, że jest przechowywane w katalogu głównym Dysku, tzn. Jeśli przesuwasz go w D: Następnie umieść go w tym pliku D/Project/solutionFile

0

Krótka odpowiedź:

  1. Przenieś katalog zawierający swoje rozwiązanie do pulpitu

LUB

  1. Usuń Odniesienia do niespokojnych biblioteki (w sekcji referencje)
  2. Zamknij Visual Studio
  3. W Eksploratorze Windows Go do katalogu projektu twojej aplikacji (lokalizacji, w której znajduje się twój plik "projectname" .sln).
  4. Odkryj ukryte przedmioty (zobacz zakładkę; sprawdź ukryte przedmioty)
  5. Usuń ukryty folder "vs", a jeśli istnieje plik o nazwie "sou", usuń go.
  6. Restart Visual Studio i uruchomić Rozwiązanie

I był z widokiem na samo rozwiązanie jak OP. Jest to rozwiązanie problemu błędu, jaki miał OP. Odniosłem się do drugiej przyczyny błędu, która może wystąpić dla innych poniżej.

Objaśnienie: Zazwyczaj występują dwa różne rodzaje problemów. Pierwsza zawiera zbyt długie pliki projektu dla System.IO.reader prowadzące do błędu zawierającego tekst o nazwie "file.path too long".

Druga przyczyna błędu wynika z faktu, że VS tworzy poprawną nazwę dla biblioteki DLL, ale niepoprawną ścieżkę dla zasobu projektu. Przykładem może być VS przy użyciu "App1 \ bin \ Debug \ net452 \ temp.dll" zamiast "App1 \ bin \ Debug \ net1.6 \ temp.dll".

1

Miał ten sam problem.Oto moje rozwiązanie

  1. Restart Visual Studio
  2. Otwórz projekt
  3. Czyste rozwiązanie
  4. odbudować roztworowi
  5. Zamknij rozwiązanie
  6. Reopen projekt
0

Oto problem: System.IO.PathTooLongException: s określona ścieżka, nazwa pliku lub oba są zbyt długie. Pełna nazwa pliku musi mieć mniej niż 260 znaków, a nazwa katalogu musi być krótsza niż 248 znaków.

Spróbuj przenieść projekcji w innym miejscu jak „C: /” lub zmienić nazwę projektu na coś więcej krótkiej

0

To zdarzyło mi się, kiedy przypadkowo zainstalowane pakiety Nuget w bibliotece klasy, która była zawarte w rozwiązaniu. Właśnie musiałem odinstalować pakiety z projektu biblioteki klas.