Nie można załadować zadania BuildTasks.Csc z zestawu?


97

Czuję się winny zadając tutaj takie pytanie, ale jestem zagubiony i byłbym wdzięczny za pomoc.

Weryfikacja koncepcji, taka jak aplikacja internetowa, została zbudowana na jednym komputerze i umieszczona w repozytorium w celu pobrania na inny komputer w innej lokalizacji. Pierwotnie skonfigurowano funkcję automatycznego kompilowania, w której platforma Azure mogłaby automatycznie kompilować i publikować podczas wpisywania, ale została ona usunięta. Sprawy działały z obu stron, dopóki jedna strona nie zawierała większości wykluczonych zmian. Teraz widzę następujący błąd:

Nie można
załadować zadania „Microsoft.CodeAnalysis.BuildTasks.Csc” z zestawu ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Nie można załadować pliku lub zestawu „file: /// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll” lub jednej z jego zależności. System nie może odnaleźć określonego pliku. Upewnij się, że deklaracja jest poprawna, że ​​zestaw i wszystkie jego zależności są dostępne oraz że zadanie zawiera publiczną klasę, która implementuje Microsoft.Build.Framework.ITask.

Czy ktoś ma jakieś sugestie, od czego zacząć szukać problemu?


Odpowiedzi:


117

Okazuje się, że pakiety NuGet zostały zatwierdzone do repozytorium i wszystko zepsuły. Usunięcie katalogu project \ project \ packages z repozytorium rozwiązało wszystkie problemy z kompilacją, ponieważ NuGet automatycznie pobiera pakiety podczas kompilacji.


Upewnij się, że dołączasz rzeczywisty folder pakietów do VSTS, a także zawartość ... Zrobiłem tylko zawartość pakietów i otrzymałem błąd
— SteveC

1
Mam pakiety nuget zatwierdzone we wszystkich moich projektach. Jedyny problem polega na tym, że gdy chcesz dodać je do kontroli źródła, pliki * .dll są domyślnie „elementami wykluczonymi”, więc zatwierdzasz tylko puste katalogi zamiast swoich nugetów. Dlatego nawet przywrócenie nuget nie pomaga, ponieważ katalogi są na miejscu, więc nuget uważa, że ​​wszystko jest w porządku.
— Jiří Herník

Podobne rozwiązanie wątku można znaleźć tutaj kx.cloudingenium.com/programming/net/…
— Pramod Sutar

Nie wiem, dlaczego to zadziałało ... Jaki jest powód?
— Richard Duerr

65

Otrzymałem ten błąd podczas tworzenia nowej gałęzi dla mojego projektu.

Doprowadzało mnie to do szału przez godzinę. Wypróbowałem większość sugestii w Internecie, w tym zaakceptowaną odpowiedź na to pytanie.

Następnie zamknąłem projekt, otworzyłem go ponownie, wyczyściłem i błąd zniknął. Oznacza to, że może to być problem z pamięcią podręczną.

W każdym razie chciałem się tylko podzielić.


6
Dzięki! Dla mnie najpierw był to folder z pakietami. Potem nadal miałem błąd, ale ponowne uruchomienie VS działało :)
— dsnunez

35

Ja również wypróbowałem najlepszą odpowiedź bez powodzenia, więc usunąłem zawartość mojego kosza i katalogu pakietów, zamknąłem i ponownie otworzyłem VS i wszystko w porządku.


1
Ten mi pomógł. Próbowałem uruchomić istniejący projekt ASP.NET w VS 2015 w programie Parallels i powodował to powyższy błąd. Usunięcie folderów „bin” i „packages”, ponowne uruchomienie VS i czysta kompilacja załatwiły sprawę!
— A3mercury

18

Wypróbowałem wszystkie opisane wcześniej rozwiązania, ale żadne nie zadziałało.

Rozwiązaniem dla mnie była aktualizacja Microsoft.Net.Compilers z Menedżera pakietów NuGet


2
Miałem odwrotny problem. Byłem zbyt optymistyczny i ściągnąłem najnowszą wersję RC. Kiedy wróciłem do najnowszej stabilnej wersji, było dobrze.
— Cool Blue

1
Zaktualizowałem wersję 2.8 do 3.1.1 i to rozwiązało mój problem. Dzięki!
— Dan Csharpster

14
  • Kliknij prawym przyciskiem myszy rozwiązanie.
  • Przejdź do Zarządzaj pakietami Nuget.
  • Szukaj Microsoft.Net.Compilers .
  • W razie potrzeby zainstaluj lub zaktualizuj zależne projekty.

6

Zbuduj ponownie, wyczyść rozwiązanie i uruchom ponownie Visual Studio.


1
Tak, to samo tutaj, jednak samo ponowne uruchomienie VS nie wystarczyło - musiałem ponownie uruchomić komputer, a potem wyszło dobrze.
— Billious

Ponowne uruchomienie komputera załatwiło sprawę. Nie jestem pewien, czy muszę wykonać wszystkie czyszczenie i ponowne instalacje pakietów NuGet.
— Don Rolling


4

Usunięcie tych trzech katalogów rozwiązuje problem.

  • / pakiety
  • /kosz
  • / obj

UWAGA : usuń zarówno / bin, jak i / obj ze wszystkich projektów zawartych w rozwiązaniu (w tym projektów testowych).


3

Problem ukrywa się na TFS, musisz usunąć folder TestProject ... \ packages z TFS, zaewidencjonować, usunąć go z lokalnego katalogu i ponownie skompilować. Pracowałem!


3

Usuwam wszystko z folderu pakietów i odbudowuję rozwiązanie. U mnie to zadziałało.


3

Skorzystaj z poniższego kroku:

1) Usuń folder pakietu.
2) zamknij studio wizualne.
3) otwórz projekt i przebuduj projekt.



1

W moim przypadku rozwiązaniem było:

Użyj Eksploratora Windows i przejdź do niewłaściwej ścieżki: C: \ MyApplication \ Code \ Main \ ABCProject \ ABCProject.UI \ Bin

Kliknij prawym przyciskiem myszy folder bin> wybierz właściwości> Odznacz Tylko do odczytu.


1

W moim przypadku rozwiązaniem było:

  1. Kliknij prawym przyciskiem myszy rozwiązanie.
  2. Przejdź do Zarządzaj pakietami Nuget dla tego rozwiązania.
  3. WyszukajMicrosoft.CodeDom.Providers.DotNetCompilerPlatform .
  4. Odinstaluj wyszukany pakiet.
  5. Uruchom ponownie program Visual Studio.


0

Kliknij prawym przyciskiem myszy rozwiązanie. Przejdź do Zarządzaj pakietami Nuget dla tego rozwiązania. Wyszukaj Microsoft.Net.Compilers w sekcji Przeglądaj.



0

W społeczności vs2017 pojawił się nowy element w menu "build". Zniknął po tym, jak go użyłem i został nazwany czymś w rodzaju „ Optymalizuj pakiety budowania projektu ”. Kliknąłem i wszystko naprawiło, po prostu zrestartowałem itd. Zrobiłem to na dwóch komputerach.

To, co zrobił, zostało usunięte Microsoft.net.compilers 2.10.0i zastąpioneMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.1

A więc proszę - bardziej automagiczny ...


0

Mój projekt został zbudowany na .Net Core 2.2, ale miałem zainstalowaną wersję zapoznawczą .Net Core 3.0. Odinstalowałem .Net Core 3.0 z mojego systemu i przeszedłem przez wszystkie moje biblioteki klas, usuwając Microsoft.Net.Compilers 3.0, a następnie przebudowałem i zadziałało.


0

Przeniosłem swoje rozwiązanie z jednego dysku na inny i jeden z plików nie mógł zostać skopiowany, ponieważ „używany”, dla którego kliknąłem, zignorowałem, powodując błąd opisany w tym poście. Ręczne skopiowanie brakującego pliku naprawiło to.

plik: Microsoft.Build.Tasks.CodeAnalysis.dll Katalog docelowy: packages \ Microsoft.Net.Compilers.2.1.0 \ tools


0

Dla mnie próbowałem otworzyć projekt MVC5 w VS 2013 i otrzymywałem ten błąd, Otworzyłem go w VS 2017 i działało dobrze.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.