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.