Nie można znaleźć pliku metadanych „.dll”

721

Pracuję nad projektem WPF, C # 3.0 i pojawia się ten błąd:

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

Oto jak odwołuję się do moich kontrolek użytkownika:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

Dzieje się tak po każdej nieudanej kompilacji. Jedynym sposobem, w jaki mogę uzyskać rozwiązanie do kompilacji, jest skomentowanie wszystkich moich kontrolek użytkownika i przebudowanie projektu, a następnie odkomentowanie kontrolek użytkownika i wszystko jest w porządku.

Sprawdziłem konfiguracje zamówień kompilacji i zależności.

Jak widać, wydaje się, że skrócił bezwzględną ścieżkę do pliku DLL ... Przeczytałem, że jest błąd w długości. Czy to możliwy problem?

Jest to bardzo denerwujące i musi komentować, budować i niekomfortowo, kompilacja staje się niezwykle męcząca.

Oliver
źródło
5
Miałem podobny problem (uzyskanie tego samego błędu, który jest wskazany w tytule) i poradziłem sobie z nim, czyszcząc i odbudowując projekt. Aby poprawnie odwoływać się do innych projektów, nie mam pojęcia ...
załaduj
Czy to pytanie zawiera odpowiedź, która kwalifikuje się jako zaakceptowana? Uważam, że ta autorstwa @Matt_Bro jest całkiem niezła.
demongolem
4
Zaznaczyłem odpowiedź Matta, ponieważ wydaje się, że zadziałała ona dla większości ludzi, jednak to nie rozwiązało mojego pierwotnego problemu. Nadal uważam, że jest to związane z limitem maksymalnej ścieżki systemu Windows. Zobacz moją odpowiedź poniżej.
Oliver
Próbowałem wszystkich powyższych odpowiedzi i niestety nic nie działało w moim przypadku. Wystąpiły 2 błędy 1. Brak pliku .dll 2. Metoda zdefiniowana już w innym miejscu z tymi samymi parametrami Najpierw wyczyściłem drugi błąd, usuwając funkcję, która została zduplikowana w innym miejscu. Mój pierwszy błąd - brak pliku .dll został rozwiązany samodzielnie. Chcę powiedzieć, jeśli masz więcej niż jeden błąd wraz z błędem braku pliku .dll! Najpierw spróbuj rozwiązać inne błędy. Może być .dll błąd rozwiązuje samodzielnie!
Użytkownik

Odpowiedzi:

904

Właśnie miałem ten sam problem. Visual Studio nie buduje projektu, do którego istnieje odwołanie.

Instrukcje pisemne:

  1. Kliknij rozwiązanie prawym przyciskiem myszy i kliknij Właściwości.
  2. Kliknij opcję Konfiguracja po lewej stronie.
  3. Upewnij się, że pole wyboru w „Kompilacji” dla projektu, którego nie można znaleźć, jest zaznaczone. Jeśli jest już zaznaczone, odznacz, naciśnij Zastosuj i zaznacz pola ponownie.
  4. (Opcjonalnie) Trzeba było to zrobić dla obu trybów Zwolnij i Debuguj we właściwościach rozwiązania.

Instrukcje przechwytywania ekranu:

  • Mówią, że obraz jest wart tysiąca słów. Kliknij GIF, aby powiększyć, i mam nadzieję, że będzie łatwy do naśladowania:

Instrukcje gif

Matt_Bro
źródło
177
I w moim przypadku, pomimo zaznaczenia pola wyboru, odznaczenie go i ponowne zaznaczenie rozwiązało problem.
ngm
13
To rozwiązało mój problem - musiałem to zrobić zarówno dla trybów Release, jak i Debugowania we właściwościach rozwiązania. Dzięki!
TheJerm
133
Simble odznacz / zaznacz nie rozwiązał problemu, więc musiałem wykonać następujące kroki: - czyste rozwiązanie - odznacz wszystkie pola wyboru kompilacji - uruchom ponownie VS - zaznacz wszystkie pola wyboru kompilacji
frankie
27
Drugą rzeczą do zrobienia jest sprawdzenie każdej zależności projektu, z jakiegoś powodu nie ustawiała tego automagicznie. Właściwości rozwiązania -> Wspólne właściwości -> Zależności projektu.
Anicho
9
odznacz -> sprawdź działało dla mnie krótko, po czym problem powrócił. Następnie ponownie uruchomiłem Visual Studio i problem zniknął.
DeveloperDan
224

Może się to nadal zdarzyć w nowszych wersjach programu Visual Studio (właśnie miałem to na Visual Studio 2013):

Inną rzeczą do wypróbowania jest zamknięcie programu Visual Studio i usunięcie .suopliku znajdującego się obok .slnpliku. (Zostanie ponownie wygenerowany następnym razem Save all(lub wyjdziesz z Visual Studio)).

Miałem ten problem podczas dodawania nowych projektów do rozwiązania na innym komputerze, a następnie pobierania poprawek, ale .suoplik może być uszkodzony również w innych przypadkach i prowadzić do bardzo dziwnego zachowania Visual Studio, więc usunięcie go jest jednym z rzeczy, których zawsze próbuję.

Pamiętaj, że usunięcie .suopliku spowoduje zresetowanie projektów startowych rozwiązania.

Więcej na temat .suopliku jest tutaj .

corvuscorax
źródło
24
To rozwiązało problem. Warto również wspomnieć, że .suopliki są ukryte. Musisz więc skonfigurować eksploratora, aby wyświetlał ukryte pliki.
George Howarth,
6
Pracuję z projektem Xamarin, a plik .suo znajduje się w folderze .vs /. Próbowałem go usunąć, ale to nie rozwiązało mojego problemu
VS2013 - Musiałem przenieść obszar roboczy TFS w inne miejsce. Po zakończeniu tego zacząłem otrzymywać ten błąd. Usunięcie pliku sou działało dla mnie.
Vin
40
To też działało dla mnie. Ale w Visual Studio 2015 .suoplik jest zarówno ukryty, jak i ukryty w .vskatalogu obok .sln. np .: jeśli plik rozwiązania jest c:\foo\mysolution.slnnastępnie c:\foo\mysolution\.vs\mysolution\v14\.suo
szukany
6
Dla VS2017, dla uproszczenia, właśnie usunąłem .vsukryty folder, który również usunął .suoplik. Ponownie otworzyłem rozwiązanie, naprawiłem jeszcze jeden niepowiązany błąd i problem został rozwiązany.
user3613932,
183

Sugerowana odpowiedź nie działała dla mnie. Błąd jest wabikiem dla innego problemu.

Dowiedziałem się, że celowałem w nieco inną wersję .NET i kompilator oznaczył to jako ostrzeżenie, ale powodowało niepowodzenie budowania. To powinno być oznaczone jako błąd, a nie ostrzeżenie.

Jordan Koskei
źródło
9
Udało mi się to naprawić, dopasowując ramę projektu do wyższej wersji wskazanej w komunikacie ostrzegawczym, klikając prawym przyciskiem myszy projekt> Właściwości> Aplikacja> Struktura docelowa.
StronglyTyped
1
To samo dla mnie, używając vs2015.
bruno.bologna
tak. dokładnie to mi się przydarzyło. VS 2015
KevinDeus
Dzięki! To rozwiązało mój problem. VS 2015 po aktualizacji projektu do .Net Framework 4.7.1.
DHoover
Wow, naprawiłem to. Nowy projekt był ukierunkowany na inną wersję .net. Nie mogę uwierzyć, że nie ma na to czekania nawet w vs2017.
Douglas Gaskell
104

Cóż, moja odpowiedź to nie tylko podsumowanie wszystkich rozwiązań, ale oferuje coś więcej.

Sekcja 1):

W ogólnych rozwiązaniach:

Miałem cztery tego rodzaju błędy („nie można znaleźć pliku metadanych”) oraz jeden błąd mówiący „Nie można otworzyć pliku źródłowego („ Nieokreślony błąd ”)”.

Próbowałem pozbyć się błędu „nie można znaleźć pliku metadanych”. W tym celu przeczytałem wiele postów, blogów itp. I stwierdziłem, że te rozwiązania mogą być skuteczne (podsumowując je tutaj):

  1. Uruchom ponownie program Visual Studio i spróbuj ponownie zbudować.

  2. Przejdź do „Solution Explorer” . Kliknij prawym przyciskiem myszy Rozwiązanie. Idź do Właściwości . Przejdź do „Configuration Manager” . Sprawdź, czy pola wyboru w „Kompilacji” są zaznaczone, czy nie. Jeśli którykolwiek lub wszystkie z nich są odznaczone, sprawdź je i spróbuj ponownie zbudować.

  3. Jeśli powyższe rozwiązania nie działają, postępuj zgodnie z sekwencją wymienioną w kroku 2 powyżej, a nawet jeśli wszystkie pola wyboru są zaznaczone, odznacz je, sprawdź ponownie i spróbuj zbudować ponownie.

  4. Kolejność budowania i zależności projektu:

    Przejdź do „Solution Explorer” . Kliknij prawym przyciskiem myszy Rozwiązanie. Przejdź do „Zależności projektu ...” . Zobaczysz dwie zakładki: „Zależności” i „Kolejność budowania” . Ta kolejność kompilacji jest kolejnością kompilowania rozwiązania. Sprawdź zależności projektu i kolejność kompilacji, aby sprawdzić, czy jakiś projekt (powiedz „projekt1”), który jest zależny od innego (powiedz „projekt2”), próbuje zbudować przed tym projektem (projekt2). Może to być przyczyną błędu.

  5. Sprawdź ścieżkę brakującego pliku .dll:

    Sprawdź ścieżkę brakującego pliku .dll. Jeśli ścieżka zawiera spację lub inny nieprawidłowy znak ścieżki, usuń ją i spróbuj ponownie zbudować.

    Jeśli to jest przyczyną, dostosuj kolejność kompilacji.


Sekcja (2):

Mój szczególny przypadek:

Wszystkie powyższe kroki próbowałem z różnymi kombinacjami i kombinacjami z kilkakrotnym restartowaniem Visual Studio. Ale to mi nie pomogło.

Postanowiłem więc pozbyć się innego napotkanego błędu („Nie można otworzyć pliku źródłowego („ Błąd nieokreślony ”)).

Natrafiłem na post na blogu: Błąd TFS - nie można otworzyć pliku źródłowego („Błąd nieokreślony”)

Próbowałem kroków opisanych w tym wpisie na blogu i pozbyłem się błędu „Nie można otworzyć pliku źródłowego („ Błąd nieokreślony ”)” i, co zaskakujące, pozbyłem się innych błędów („nie można znaleźć pliku metadanych”), ponieważ dobrze.


Sekcja 3):

Morał historii:

Wypróbuj wszystkie rozwiązania wymienione w sekcji (1) powyżej (i wszelkie inne rozwiązania), aby pozbyć się błędu. Jeśli nic nie działa, zgodnie z blogiem wspomnianym w sekcji (2) powyżej, usuń wpisy wszystkich plików źródłowych, które nie są już obecne w kontroli źródła i systemie plików z pliku .csproj .

Vikram
źródło
4
Mój problem polegał na zleceniu kompilacji / zależnościach projektu. Usunięcie i dodanie referencji z innych projektów to naprawi (tak myślę), ale możesz to zrobić sam.
Nacht - Przywróć Monikę
4
Stawiłem czoła temu problemowi, obniżając .NET v4.5projekt do .NET v.4.
guneysus
1
Usunięcie „%” z
odnośnej
1
Rozwiązanie w części 2 zadziałało dla mnie! Miałem kolejny błąd i kiedy naprawiłem, inni magicznie zniknęli.
Martin Johansson,
1
Miałem ten sam problem co Boogier. Miałem% 20 w nazwie mojego folderu zamiast spacji i dll szukał spacji. Spędziłem tyle czasu na wypróbowaniu wszystkich innych poprawek, kiedy ta była najprostsza.
Lenny K
38

W moim przypadku było to spowodowane niedopasowaniem wersji .NET Framework.

Jeden projekt miał 3.5, a drugi odnosi się do projektu 4.6.1.

Eric Schneider
źródło
2
Dzieje się tak również między 4.5.2 Vs. 4.6
AzzamAziz,
2
Rzeczywiście miałem jeden z 4.6.1, a reszta to 4.5.2, dzięki!
Mason
7
Tak, wydaje się, że ilekroć wersja ramowa jest inna, tak się dzieje. Świetny błąd Microsoft!
Eric Schneider,
Tak! Próbowałem użyć .Net 4.7.1 .dll, gdy mój projekt to .Net 4.6.1. Ostrzeżenie zostało ukryte przez inne elementy, ale nie było w nim błędu. Moim błędem był czerwony śledź
Esaith,
29

Zamykanie i ponowne otwieranie Visual Studio 2013 działało dla mnie!

Roffery
źródło
Ten problem występuje po przywróceniu zmian git w plikach projektu. Zrestartowałem VS2015 i rozwiązałem problem
Ludovic C
To powinno być oznaczone jako zaakceptowana odpowiedź. Zaznaczanie / odznaczanie pól wyboru zajmuje więcej czasu.
Alex
1
Wciąż mam ten problem z VS2019 i naprawiłem go, dzięki
pcdev
20

Cóż, nic z poprzednich odpowiedzi nie działało dla mnie, więc pomyślałem o tym, dlaczego klikam i mam nadzieję, że jako programiści powinniśmy naprawdę spróbować zrozumieć, co się tutaj dzieje.

Wydawało mi się oczywiste, że to niepoprawne odniesienie do pliku metadanych musi być gdzieś przechowywane.

Szybkie wyszukiwanie pliku .csproj pokazało winne linie. Miałem sekcję o nazwie <itemGroup>, która wydawała się zawieszać na starej niepoprawnej ścieżce pliku.

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

Tak naprawdę prosta poprawka:

  1. Wykonaj kopię zapasową pliku .csproj.
  2. Znajdź nieprawidłowe ścieżki w pliku .csproj i odpowiednio zmień nazwę.

Upewnij się, że wykonałeś kopię zapasową starego .csproj przed skrzypkiem .

Alex Stephens
źródło
38
UPEWNIJ SIĘ, ŻE KORZYSTASZ Z KONTROLI WERSJI, ZANIM
ZROBISZ Cokolwiek
14

Spotkałem również ten problem. Najpierw musisz ręcznie zbudować swój projekt DLL, klikając prawym przyciskiem myszy opcję Buduj. Wtedy to zadziała.

BlueRaja - Danny Pflughoeft
źródło
14
Chociaż ta poprawka działa, tak naprawdę nie rozwiązuje problemu i może prowadzić do większej liczby podstawowych problemów. Przede wszystkim, jeśli pracujesz z kodem w repozytorium, złym rozwiązaniem jest wymaganie od nowego programisty przeskakiwania przez obręcze w celu uzyskania kodu do punktu, w którym zostanie skompilowany. Po drugie, aby zobaczyć zmiany w projekcie, do którego się odwołujesz, musisz za każdym razem ręcznie go odbudowywać. Proszę zobaczyć moją odpowiedź na bardziej niezawodne rozwiązanie problemu.
Matt_Bro
W moim przypadku nie buduje nawet projektu indywidualnie, daje mi ten sam błąd. Powiedzmy, że nazwa mojego projektu to „proj1”, kiedy go buduję (ręcznie, jak powiedziałeś), daj mi Metadata file ...proj1.dll could not be found!
A-Sharabiani
14

W moim przypadku mam zainstalowany katalog w błędny sposób.

Jeśli ścieżka rozwiązania jest podobna do „Mój projekt% 2c Bardzo popularny% 2c Testowanie jednostkowe% 2c Oprogramowanie i sprzęt.zip”, nie może rozwiązać pliku metadanych, być może powinniśmy zapobiec nieprawidłowym słowom, takim jak% 2c.

Zmiana nazwy ścieżki na normalną nazwę rozwiązała mój problem.

masphei
źródło
1
Czy mógłbyś uściślić swoją odpowiedź, dodając nieco więcej informacji na temat oferowanego rozwiązania?
abarisone
Mój klon git dodał% do ścieżki do folderu, usunięcie ich rozwiązało problem.
Erik Bergstedt,
@abarisone Usunąłem ciąg „% 2c” ze ścieżki, a następnie zadziałało
masphei
1
To też był mój problem, kiedy sklonowałem projekt, który został nazwany przy użyciu „% 20” zamiast zwykłej spacji. Dzięki @abarisone, twoje podejście rozwiązało mój problem.
MA Cordeiro
Kiedy sklonowałem mój projekt z TFS, z jakiegoś powodu również dodałem% 20. Usunięcie również rozwiązało problem.
Selthien
13

Otrzymałem ten sam błąd „Nie można znaleźć pliku metadanych” .dll „i próbowałem kilku rzeczy opisanych powyżej, ale przyczyną tego błędu było to, że odwoływałem się do pliku DLL innej firmy, który był skierowany na wersję .NET wyższą że mój projekt jest przeznaczony do wersji .NET. Rozwiązaniem była zmiana docelowej struktury mojego projektu.

Mladen Nikolov
źródło
Cóż, miałem już odpowiedzieć na to samo, w moim przypadku dodałem nowy projekt ukierunkowany na .Net 4.5.x i zaczęło się to dziać, kiedy z tego projektu dodałem odniesienie do projektu, który używa .Net 4.6.
Juan
11

Visual Studio 2019 to działało dla mnie:

  1. Zamknij Visual Studio
  2. Usuń ukryty .vsfolder
  3. Ponownie otwórz program Visual Studio i przebuduj rozwiązanie.
Andrzej
źródło
Dziękuję bardzo, to zadziałało również dla mnie po wykonaniu jeszcze jednej nieudanej kompilacji.
Iamsodarncool
Dziękuję, zrobiło to dla mnie.
iaacp
10

Dla mnie próbowałem znaleźć bibliotekę DLL na ścieżce zawierającej projekt, ale przenieśliśmy ją do nowego katalogu. Rozwiązanie miało prawidłową ścieżkę do projektu, ale Visual Studio jakoś wciąż szukało starej lokalizacji.

Rozwiązanie: Zmień nazwę każdego projektu - po prostu dodaj znak lub cokolwiek - a następnie zmień nazwę z powrotem na pierwotną nazwę.

To musi zresetować jakąś globalną pamięć podręczną jakiegoś rodzaju w Visual Studio, ponieważ to usuwa zarówno ten problem, jak i kilka podobnych, podczas gdy rzeczy takie jak Clean nie.

Chris Moschini
źródło
10

Dodałem nowy projekt do mojego rozwiązania i zacząłem go otrzymywać.

Powód? Projekt, który przyniosłem, był ukierunkowany na inną platformę .NET (4.6 i moje pozostałe dwa to 4.5.2).

Todd Vance
źródło
1
Nie wiem dlaczego teraz, ale prowadziłem moje projekty przez taki rok. moim podprojektem był 4.6.1, a głównym projektem był 4.5.2. działało bez problemu. nagle pojawia się ten błąd, ale nie chcę obniżać poziomu projektu podrzędnego, ponieważ ma on funkcję istniejącą w 4.6.1 i nie sądzę, że to jest problem. Microsoft wyjaśnia, że ​​powinno nadal działać
batmaci
TLDR: Sprawdź ostrzeżenia kompilacji. Tak się stało, ale z pewnym zdziwieniem. projs były na poziomie 4.5.2. Dodano nowe projekty w wersji 4.6. Zainstalowane pakiety nuget w projektach 4.6. Obniżono projekty z 4,6 do 4.5.2. Nugets spodziewali się 4.6. Rozwiązano obniżenie klas użytkowych.
w00ngy
9

Dla mnie miało to miejsce, gdy dołączyłem nowy projekt rozwiązania.

Visual Studio automatycznie wybiera .NET Framework 4.5.

Zmieniłem na wersję .NET 4.5.2, podobnie jak inne biblioteki, i działało.

Andre Mesquita
źródło
8

Dla mnie zadziałały następujące kroki:

  • Znajdź projekt, który się nie buduje
  • Usuń / dodaj odniesienia do projektów w ramach rozwiązania.
Baglay Wiaczesław
źródło
Kliknij prawym przyciskiem myszy „folder” w eksploratorze rozwiązań, „usuń nieużywane odniesienia”. Zrobiłem to we wszystkich moich projektach w tym rozwiązaniu, to
załatwiło sprawę
8

Z tym problemem również wyciągałam włosy, ale po wypróbowaniu poprzednich odpowiedzi jedyną rzeczą, która działała dla mnie, było otwarcie każdego projektu w moim rozwiązaniu 1 na 1 i zbudowanie go indywidualnie.

Następnie zamknąłem program Visual Studio 2013, ponownie otworzyłem moje rozwiązanie i zostało poprawnie skompilowane.

To dziwne, ponieważ jeśli kliknąłem każdy projekt w Eksploratorze rozwiązań i próbowałem je zbudować w ten sposób, wszystkie zawiodły. Musiałem otworzyć je same w ich własnych rozwiązaniach.

poszukiwacz
źródło
1
Ugh, to. Tak wiele rzeczy Microsoft wymaga ponownego uruchomienia, aby znów działać.
Yatrix
8

Wygląda na tego rodzaju błędy związane z faktem, że Visual Studio nie podaje poprawnych informacji o błędzie. Deweloper nie rozumie nawet przyczyny niepowodzenia kompilacji. Może to być błąd składniowy lub coś innego. Często, aby rozwiązać takie problemy, powinieneś znaleźć źródło problemu (na przykład spójrz na dziennik kompilacji).

W moim przypadku problemem było to, że Error Listokno nie wyświetlało żadnych błędów. Ale tak naprawdę były błędy składniowe; Znalazłem te błędy w Outputoknie, a po ich naprawieniu problem został rozwiązany.

burzhuy
źródło
Też doświadczyłem tego problemu. Nie było błędu na liście błędów, ale wyniki nieudanej kompilacji w DevOps pokazały błąd
amartin
7

Moje wystąpienie problemu było spowodowane wspólnym projektem, który miał zduplikowaną nazwę klasy (pod inną nazwą). To dziwne, że Visual Studio nie mógł tego wykryć i zamiast tego po prostu wysadził proces kompilacji.

Eric
źródło
Czy to komentarz, odpowiedź czy nowe pytanie? Zauważ też, że OP pochodzi z 2009 roku
gmo
8
Jest to dodatkowe rozwiązanie tego samego problemu. Wiem, że OP jest stary, ale na podstawie ostatnich kilku postów ludzie wciąż znajdują inne przyczyny. Po prostu próbuję ocalić kolejnego faceta na frustracji, ponieważ żadne inne rozwiązanie też dla mnie nie działało.
Eric
4
Nie krytykuję niczyich odpowiedzi, po prostu oferuję alternatywne rozwiązanie tego samego objawu.
Eric
7

Mam ten problem w Visual Studio 2012 w rozwiązaniu, które miało wiele projektów. Ręczne przebudowanie każdego projektu w rozwiązaniu w tej samej kolejności, co zamówienie kompilacji projektu (kliknij prawym przyciskiem myszy i przebuduj w Solution Explorer) naprawiło to dla mnie.

W końcu doszedłem do takiego, który dał mi błąd kompilacji. Naprawiłem błąd, a po tym rozwiązanie będzie działać poprawnie.

dan-gph
źródło
W moim przypadku błąd był ukryty, dopóki nie otworzyłem Visual Studio 2015 w trybie administratora. Dopiero wtedy pokazał błąd kompilacji. Po naprawieniu tego mogłem kontynuować.
SL Barth - Przywróć Monikę
6

W moim przypadku problem polegał na tym, że ręcznie usunąłem plik niekompilacyjny, który został oznaczony jako „brakujący”. Kiedyś usunąłem odniesienie do brakującego pliku i ponownie skompilowałem - wszystko poszło dobrze.

David Ford
źródło
6

Jeśli w nazwie rozwiązania znajduje się spacja, spowoduje to również problem. Usunięcie spacji z nazwy rozwiązania, aby ścieżka nie zawierała% 20, rozwiąże ten problem.

Ajaco
źródło
jesteś geniuszem!!
Itamar,
Nie widziałem twojego komentarza, zanim się zorientowałem. Ale to był mój problem.
L Johnson
6

W moim przypadku problem był spowodowany prostym błędem kompilacji,

błąd CS0067: Zdarzenie „XYZ” nigdy nie jest używane

z jakiegokolwiek powodu nie pojawił się w oknie błędu.

Z tego powodu system kompilacji Visual Studio wydawał się nie zauważać błędu i próbował budować projekty zależne, co z kolei zakończyło się niepowodzeniem z irytującym komunikatem o metadanych.

Zalecenie jest -głupie, jak może to zabrzmieć-:

Najpierw spójrz na okno wyjściowe !

Zajęło mi to pół godziny, zanim ten pomysł mnie uderzył ...

Heinz Kessler
źródło
Myślę, że każdy powinien spojrzeć na tę odpowiedź. Zajrzyj do okna wyników kompilacji i sprawdź, czy są tam jakieś błędy lub ostrzeżenia, a następnie je napraw. Problem rozwiązany. Dzięki Heinz Kessler za odpowiedź.
Captain America
5

Ja też miałem ten sam błąd. Ukrywa się jak na poniższej ścieżce. Ścieżka, o której mówiłem dla pliku DLL, to „D: \ Assemblies Folder \ Assembly1.dll”.

Ale oryginalna ścieżka, do której odwoływał się zespół, brzmiała „D: \ Assemblies% 20Folder \ Assembly1.dll”.

Z powodu tej zmiany nazwy ścieżki zestaw nie mógł zostać pobrany z oryginalnej ścieżki i dlatego zgłasza błąd „Nie znaleziono metadanych”.

Rozwiązaniem jest pytanie Przepełnienie stosu Jak zamienić wszystkie spacje na% 20 w C #? .

Arun Prasad
źródło
5

Napotkałem ten sam problem. W moim przypadku odwołałem się do projektu biblioteki klas z wyższą wersją .Net niż mój projekt, a VS nie zbudował projektu i zgłosił ten sam błąd, który opublikowałeś.

Po prostu ustawiłem wersję .Net mojego projektu biblioteki klas (ten, który zepsuł kompilację) identyczną z wersją .Net projektu i rozwiązania problemu.

Code_Worm
źródło
1
To!!! Chociaż powyższa odpowiedź była dobra, to było coś, co całkowicie przeoczyłem. Dziękuję, proszę pana.
Rhys Johns
@RhysJohns happy coding :)))
Code_Worm
4

Wskazując rażąco oczywiste: jeśli nie masz włączonej opcji „Pokaż okno wyjściowe po rozpoczęciu kompilacji”, upewnij się, że zauważysz, że kompilacja kończy się niepowodzeniem (mały błąd „kompilacji nie powiódł się” w lewym dolnym rogu) !!!!

tbone
źródło
Ostatnio miałem coś podobnego - nieoczekiwanie, setki błędów cs0006 w dzienniku błędów, ale nic więcej (i przeczesałem to bardzo drobnym grzebieniem). W końcu (!) Pomyślałem o spojrzeniu na okno Wyjście, i zgłoszono błąd kompilatora, i na pewno w kodzie błąd miał pod spodem czerwony błąd. Nie mam pojęcia, dlaczego błąd nie został zgłoszony w oknie Błędy. VS2017 Enterprise.
haughtonomous
4

Wystąpił ten błąd podczas próby opublikowania aplikacji internetowej. Okazało się, że jedna z właściwości klasy została zapakowana

#if DEBUG
    public int SomeProperty { get; set; }
#endif

ale wykorzystanie nieruchomości nie było. DEBUGOczywiście publikacja została wykonana w konfiguracji Release bez symbolu.

Dmitri Trofimov
źródło
4

Na podstawie komunikatu o błędzie nie sądzę, aby ścieżka do pliku została obcięta. Wygląda to po prostu niepoprawnie. Jeśli poprawnie czytam komunikat, wygląda na to, że szuka pliku DLL w ...

WORK = - \ Tools \ VersionManagementSystem \ BusinessLogicLayer \ bin \ Debug \ BusinessLogicLayer.dll

To nie jest poprawna ścieżka. Czy to możliwe, że masz definicję makra w procesie kompilacji ustawioną na niepoprawną wartość?

JaredPar
źródło
Nie wiem, jak nic nie zmieniłem i nie mam żadnych niestandardowych kompilacji ani konfiguracji
Oliver
4

Miałem ten problem, ponieważ .nuget\NuGet.exenie został uwzględniony w moim repozytorium. Mimo że włączyłem DownloadNuGetExeNuGet.targets, zgłosił błąd serwera proxy podczas próby pobrania. Spowodowało to niepowodzenie pozostałych kompilacji projektu.

wtjones
źródło
4

Ten błąd może zostać wyświetlony, jeśli używasz fałszywych zestawów. Usuwanie podróbek prowadzi do pomyślnej kompilacji projektu.

FLCL
źródło
Co to jest „fałszywy zestaw”? Czy możesz rozwinąć? (Odpowiedz, rozszerzając swoją odpowiedź.)
Peter Mortensen,