Poniższy moduł został zbudowany z włączonymi optymalizacjami lub bez informacji o debugowaniu


139

Nie mogę się tego pozbyć w moim projekcie sieci Web VS 2008 podczas debugowania. Sprawdziłem, czy jest w trybie debugowania w omawianym projekcie innym niż internetowy i jest w trybie Aktywny (Debugowanie). Usunięto wszystkie elementy z mojego folderu tymczasowego .NET 2.0 w systemie Windows. Nie wiem, co jeszcze tutaj zrobić.

Odpowiedzi:


187

Spróbuj wyłączyć opcję „Włącz tylko mój kod” w menu Narzędzia / Opcje / Debugowanie / Opcje.


Zrobiłem to i zadziałało. Mogłem używać punktów przerwania i przechodzić przez kod. Nie rozumiem. Dlaczego to zadziałało? (Debugowałem moduł Managed C ++, do którego odwołuje się usługa Win Service przy użyciu VS2010)
tzup

Właśnie miałem ten problem i twoje rozwiązanie zadziałało dla mnie. Dzięki!
Colin O'Dell

5
Działa, ale może powodować niepożądane efekty uboczne podczas debugowania: blogs.devsource.com/devlife/content/net_general/ ...
user276648

2
W VS2010 to pole wyboru znajduje się w obszarze Debugowanie> Opcje i ustawienia, a następnie w obszarze Debugowanie> Ogólne
plik cookie

To działa z powodu przebudowy opcji? O co chodzi. Rozwiązałem problem, ale dlaczego?
jeremy.bass

83

Miałem ten sam problem i odkryłem, że nie wyświetlam informacji debugowania na mojej kompilacji. Jeśli klikniesz projekt prawym przyciskiem myszy i przejdziesz do „właściwości”, a następnie wybierzesz zakładkę „kompilacja”, na dole strony znajduje się przycisk „Zaawansowane ...”, który wyświetli ustawienia, aby wyświetlić informacje o debugowaniu. Ustaw to na „pełne”, a błąd powinien zniknąć.

wprowadź opis obrazu tutaj


1
To jest poprawna odpowiedź. Powinieneś wyświetlać „pełne” informacje debugowania, gdy chcesz debugować lokalnie aplikację w trybie programistycznym. Należy to zrobić zamiast odpowiedzi „Włącz tylko mój kod”, ponieważ ta odpowiedź może mieć niezamierzone skutki uboczne (jak wspomniano powyżej).
Tod Thomson,

1
@Tod Thomson, nie jestem pewien, dlaczego twierdzisz, że jest to poprawna odpowiedź, ponieważ właśnie teraz widzę komunikat podczas debugowania mojej aplikacji internetowej i próby wejścia do biblioteki klas, tak bardzo podobnej do konfiguracji opisanej w pytaniu. Moje ustawienia Debug Infopełne i nie mam powodu sądzić, że zawsze było inaczej.
R. Schreurs

1
@ R.Schreurs Wypróbowałem wszystko inne na tej stronie i jedyną rzeczą, która działała dla mnie, była ta odpowiedź. Jeśli to nie zadziała, wypróbuj tutaj coś innego / podaj własną odpowiedź.
Tod Thomson,

To błąd Microsoftu. Nie mów „powinien”. Chyba że mówisz „Błąd powinien zniknąć, ale to Microsoft, więc powinieneś przemyśleć swoje życie”
user1566694

24

Właśnie napotkałem ten problem i szybko zdecydowałem, że inne opublikowane odpowiedzi mnie nie dotyczą.

wyłączyć

Jestem właścicielem projektu i wiem, że został on zbudowany z wykorzystaniem informacji debugowania, a także bez optymalizacji. Co więcej, nigdy nie jestem zadowolony, wybierając wyłączenie ostrzeżenia jako swój pierwszy wybór. Ukrywanie / ignorowanie tego ostrzeżenia może stać się problemem w przyszłej sesji debugowania.

Ponieważ zaczęło się to pojawiać dopiero po podpisaniu zestawu , wskazało mi to na moją szybką poprawkę: tymczasowo usuń silną nazwę mojej biblioteki DLL (i zużyj plik EXE). Voila! Problem rozwiązany.

Lepsze, długoterminowe rozwiązanie mogłoby polegać na dodaniu akcji po kompilacji w celu zaktualizowania GAC, tak aby miał najnowszą wersję podpisanej biblioteki DLL.

Ale na razie cieszę się, że mogę odejść od tej rozrywki i kontynuować pracę nad problemem, który doprowadził mnie do tej sesji debugowania.


4
Byłem w podobnej sytuacji co ty, ale poszedłem na łatwiznę ... Odinstalowałem program, który umieścił tę bibliotekę DLL w GAC, ponieważ była to tylko starsza wersja tego, co debugowałem.
SeeMoreGain

2
Również +1 za zalecenie naprawienia źródła problemu, a nie tylko włączenie obejścia, takiego jak wszystkie inne, sugerujące odznaczenie opcji „Włącz tylko mój kod”
SeeMoreGain

17

zdecydowany. Usunięto wszystkie wystąpienia (wszystkie projekty) danej biblioteki DLL.


1
Zamknąłem wszystkie sesje VS / VWD, w których przywołane projekty i moje aktywne rozwiązanie były otwarte. Następnie usunąłem KAŻDE wystąpienie problemów z bibliotekami dll i ich towarzyszące pdbs. Następnie usunąłem wszystko z tymczasowej lokalizacji witryny debugowania w strukturze .NET Framework (dla tego projektu była to C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files [myWebsite]). To dało mi błąd „plik w użyciu” w jednej z wcześniejszych wersji, dopóki nie zamknąłem VWD. Następnie ponownie otworzyłem projekt i poprawiłem wszystkie zaległe błędy i ostrzeżenia w kodzie projektu. Dopiero wtedy błąd zniknął.
BH

14

VS2012, wyczyść i przebuduj rozwiązało problem. „Właściwości” -> „Kompiluj” -> Optymalizuj kod nie jest zaznaczone. „Właściwości” -> „Kompiluj” -> „Zaawansowane” -> Informacje debugowania: pełne


czy musimy zmienić ustawienia
kbvishnu

To zadziałało podczas debugowania dodatku Visual Studio 2010. Wcześniej był ustawiony na none.
Sabuncu,

Nie działało dla mnie, ale po usunięciu folderów bin i obj, a następnie rozwiązanie czyszczenia i przebudowy działało ponownie :)
QMaster


7

Zgadywanie, że VS 2008 nie odbudowuje poprawnie biblioteki dll.

1) Usuń wszystkie wystąpienia biblioteki dll

2) Odbuduj rozwiązanie

I to powinno to naprawić.


Usunąłem katalog bin mojej aplikacji internetowej, a następnie odbudowałem wszystko. To naprawiło!
Kapitan Sensible

6

Sprawdź opcje konfiguracji kompilacji. Upewnij się, że optymalizacje są wyłączone, a stała DEBUG jest zdefiniowana.


Kompilacja jest wybrana, a optymalizacje są zdecydowanie wyłączone.

6

Jeśli wszystko inne zawiedzie, spróbuj zmienić nazwę zestawu we właściwościach projektu. To rozwiązało problem.


Po spędzeniu godzin i przeszukaniu Internetu próbując wszystkiego, co napotkałem, to zadziałało. Coś musi być zapisane w pamięci podręcznej?
Chris R,

6

Mam również ten problem, z jakiegoś powodu zdarzyło się to 3 lub 4 razy; Myślę, że to musi być błąd / hick up Visual Studio 2005 (lub przynajmniej moja instalacja).

To działało za każdym razem: aby to naprawić ja

  1. Kliknij prawym przyciskiem myszy moje rozwiązanie i kliknij Właściwości.
  2. Otwórz Menedżera konfiguracji.
  3. Wybierz Debuguj z menu rozwijanego (jeśli nie jest jeszcze zaznaczone).
  4. Odznacz opcję BUILD. Następnie sprawdź to ponownie.
  5. Odbuduj rozwiązanie.

4

Narzędzia> opcje> Debugowanie> Symbole> Określ wykluczone moduły wyglądają tak, jakby dll lub exe na liście wykluczonych modułów


3

Działa to przynajmniej w przypadku aplikacji innych niż internetowe:

Od: http://www.stellarpc.com/articles/board.aspx?id=40

2 - Zezwól na debugowanie ...

Ze względu na charakter, w jakim jeden z zestawów został zbudowany w aplikacji, należy zmienić kilka ustawień, aby umożliwić obsługę kodu przez debuger programu Visual Studio.

Kliknij prawym przyciskiem myszy dowolny projekt w eksploratorze rozwiązań i wybierz „Właściwości”. Otworzy się panel właściwości projektu, dając nam dostęp do wielu opcji dla naszych projektów. Przejdź do karty „Complile” (lub „Build”, jeśli pracujesz w środowisku C #) i wybierz opcję „Advanced Compile Options ...” (Zaawansowane opcje kompilacji) u dołu ekranu. To daje nam wskazówkę, która ma dwa kluczowe obszary zainteresowań:

1) Optymalizacje - odznacz „Włącz optymalizacje”

2) Wygeneruj informacje debugowania - upewnij się, że opcja jest ustawiona na „Pełne”


Ciekawe ... Mam tak skonfigurowane projekty i nawet przy takiej konfiguracji komunikat nadal się pojawia. Więc to nie jest jeszcze ostateczne rozwiązanie
Junior Mayhé

3

Miałem ten problem z rozwiązaniem w pewnym folderze, ale jeśli przeniosłem je do innego folderu lub utworzyli go inni, nie otrzymałem wiadomości. Zrobiłem czyszczenie, odbudowałem, a nawet ponownie uruchomiłem i nadal nie mogłem debugować oryginału bez tej wiadomości. Przeszukałem system w poszukiwaniu kopii pliku powodującego błąd i stwierdziłem, że kopie zostały zachowane

c: \ Użytkownik \ nazwa użytkownika \ AppData \ Local \ Assembly \ dl3

To było na Win7-64, ale będzie podobne w innych systemach operacyjnych Windows. Usunąłem wszystkie znalezione tam kopie i nie otrzymuję już wiadomości. Nie musiałem odznaczać opcji „Włącz tylko mój kod”.

Dotyczyło to również aplikacji WPF, ale podczas poszukiwań natknąłem się na ten wątek, więc mam nadzieję, że pomoże to komuś innemu.


3

Udało mi się rozwiązać ten problem, wykonując następujące czynności:

  1. Kliknij prawym przyciskiem myszy rozwiązanie (nie projekt) i wybierz „Właściwości”
  2. W lewym panelu wybierz „Właściwości konfiguracji”
  3. W prawym panelu wybierz opcję „Debuguj” w kolumnie „Konfiguracja” swojego projektu

Jeśli nie widzisz rozwiązania wymienionego w Eksploratorze rozwiązań, wykonaj następujące kroki:

  1. Na pasku menu przejdź do Narzędzia -> Opcje
  2. W lewym panelu wybierz „Projekty i rozwiązania” (może być konieczne zaznaczenie „Pokaż wszystkie ustawienia” w lewym dolnym rogu okna)
  3. W prawym panelu zaznacz „Zawsze pokazuj rozwiązanie”

Mam nadzieję, że to pomoże.


2

Ja też to wszystko mam. I zrobiłem to wszystko. Wygląda na to, że zdarza mi się to za każdym razem, gdy otrzymuję nową kopię całego rozwiązania poza kontrolą źródła. Więc jeśli zrobiliśmy to wszystko, usunęliśmy pliki dll i .pdb dla wszystkich odniesień (zestawów) w projekcie internetowym, użyliśmy opcji czyszczenia w rozwiązaniu, usunęliśmy pliki tymczasowe, zamknęliśmy VS i ponownie otworzyliśmy, upewniając się, że wybrano tryb debugowania i ustawione na maksimum, a optymalizacje wyłączone, co jeszcze jest?!?!?!


Ja też desperacko szukam rozwiązania. Nie może nawet wygenerować pliku pdb.
xar

2

Miałem ten sam problem z moim projektem sieciowym w programie Visual Studio 2010 i w końcu znalazłem powód, dla którego otrzymałem ten komunikat. Zmieniłem istniejącą opcję debugowania w programie Visual Studio:

  • Przejdź do Narzędzia-> Opcje-> Debugowanie-> Symbole-> Wszystkie moduły
  • Zaznacz przycisk opcji „chyba że wykluczono”
  • Kliknij łącze „Określ wykluczone moduły”, a następnie usuń bibliotekę DLL, którą chcesz debugować.

W moim przypadku był to mój internetowy plik DLL ...


2

Miałem to podczas próby zdalnego debugowania aplikacji na komputerze należącym do innej podsieci. Byłem w stanie debugować i przejść przez kod podczas uruchamiania go w sieci, jeśli maszyny były w tej samej podsieci. Po zmianie podsieci nie mogłem jednak przejść przez to podczas uruchamiania z sieci i otrzymywałem komunikat „Następujący moduł został zbudowany z włączonymi optymalizacjami lub bez informacji o debugowaniu”.

Rozwiązanie? Łatwo. Skopiuj zbudowane rozwiązanie na komputer obsługujący zdalne debugowanie i uruchom je lokalnie.


2

Czy zdarzyło mi się to w projekcie winForms VS 2010. Widząc, że większość ludzi tutaj ma projekty internetowe, myślę, że ma to związek z dostępem do folderu, w którym projekt jest przechowywany. Mówię to, ponieważ kiedy pojawił się ten problem, Dysk Google synchronizował folder, w którym trzymam moje projekty. Wygląda na to, że samo wyłączenie synchronizacji nie rozwiązuje problemu.

Moje rozwiązanie jest podobne do jednej z powyższych odpowiedzi:

  • Poszedłem do „Właściwości projektu> Kompiluj> Zaawansowane opcje kompilacji”
  • Zaznaczono „Włącz optymalizację”
  • Ustaw „Ogólne informacje o debugowaniu” na „Brak”
  • Niezaznaczone „Zdefiniuj stałą DEBUG”
  • I nacisnąłem OK
  • Następnie wrócił i przywrócił opcje do stanu początkowego.

Mam nadzieję, że to komuś pomoże, ponieważ wydaje się, że to nadal się dzieje.


2

Wykonaj następujące czynności: (pierwsze zatrzymanie debugowania)
1: kliknij prawym przyciskiem myszy nazwę rozwiązania projektu lub projekt -> Właściwości
2: w obszarze Właściwości konfiguracji wybierz Menedżer konfiguracji
3: Zmień konfigurację, aby debugować i kliknij zamknij
4: Zmień konfigurację, aby debugować i kliknij Zastosuj - > OK
Teraz przebuduj rozwiązanie ....!


1

Dla mnie zaznaczenie pola „Optymalizuj kod” we właściwościach projektu, zapisanie, odznaczenie go, a następnie ponowne zapisanie zrobiło to za mnie.

Wyłączenie opcji „Włącz tylko mój kod” również działało, ale było to raczej obejście niż naprawa, ponieważ nie chciałem tego ustawienia.


1

Miałem ten sam problem, ale z inną przyczyną i rozwiązaniem. Okno było takie samo, jak pokazane przez Gustavo (powyżej), ale ścieżka znajdowała się w: „\ users \ zzz \ AppSettings ...” (gdzie zzz to nazwa użytkownika systemu Windows)

Miałem dodatek do Excela - testowałem instalację dodatku, więc miałem zainstalowaną kopię za pomocą funkcji instalacji VS. VS najwyraźniej próbował debugować zarówno zainstalowaną kopię, jak i kopię, którą właśnie uruchomiłem, i nie mógł znaleźć symboli debugowania na zainstalowanej kopii.

Żadne z powyższych rozwiązań nie zadziałało (bez skutków ubocznych),

ROZWIĄZANIE: odinstalowanie dodatku i ręczne usunięcie plików w ustawieniach aplikacji działało.


0

Wspomniałeś, że to projekt internetowy ... masz

<compilation debug="true />

w twoim web.config?


0

Miałem ten sam problem po skompilowaniu z konfiguracją wydania. Okazało się, że kiedy wróciłem do debugowania, VS nie wykrył żadnych różnic, więc nie aktualizował plików .dll i .pdb w folderze bin.

Oto, co zadziałało dla mnie:

  1. Uruchom iisreset (aby wyczyścić foldery tymczasowe)
  2. Zapisz plik web.config (aby zmusić VS do rzeczywistej przebudowy)
  3. Przebuduj przy debugowaniu
  4. Rozpocznij projekt

Dlaczego po prostu nie użyłeś polecenia Przebuduj w menu budowania? To wymusza odbudowę wszystkich modułów, niezależnie od tego, czy zmiany zostaną wykryte, czy nie.
Ron

@Ron, przepraszam, nie pamiętam wszystkich szczegółów, to było jakiś czas temu, myślę, że wystąpił problem z tą wersją i przebudowanie z menu kompilacji nie wyczyściło plików zgodnie z oczekiwaniami.
bubbassauro


0

Mój przypadek jest następujący: webservice odwołuje się do lib1.dll. Później usunąłem odniesienie, ponieważ nie było już używane. Jednak lib1.dll pozostał w folderze bin. Ponieważ nie było odniesienia do biblioteki, akcje Przebuduj i Wyczyść nie były pomocne. Po ręcznym usunięciu lib1.dll z folderu bin pozbyłem się tej wiadomości.


0

Jeśli publikujesz w usługach IIS i nie używasz wbudowanego serwera sieci Web - ani usług IIS Express - upewnij się, że ustawienia profilu publikowania są w trybie debugowania. W vs 11 domyślnie jest w trybie wydania.


0

Dodam, że szukałem na tym blogu rozwiązania tego samego problemu, z którym miałem do czynienia. Niestety powyższe rozwiązania mi nie pomogły. W końcu zorientowałem się, że instalowałem swoje bity (wraz z .pdb) przez instalator i ustawiając uprawnienia bezpośrednio w folderze instalacyjnym.

Z tego powodu VS nie był w stanie załadować pdb, mimo że przeglądarka plików pokazywała poprawny plik, ale dawała ten sam błąd, o którym mowa powyżej.

Po usunięciu zaznaczenia opcji „Włącz tylko mój kod” i usunięciu ustawień uprawnień z instalatora VS rozpoczął ładowanie modułu.


0

Jedyna konfiguracja, która działała dla mnie, była następująca

Projekt -> (Twój projekt) Właściwości -> Karta Debuguj, upewnij się, że Konfiguracja jest ustawiona na Aktywna (debugowanie) W obszarze „Unable Debuggers” (Unable Debuggers) upewnij się, że jest zaznaczona opcja „Enable unmanaged code debugging”


0

Tworzę usługę systemu Windows i oto, co zadziałało:

  • Odinstaluj usługę.
  • Otwórz wiersz polecenia i przejdź do c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319
  • installutil C: \ MyFantabulusWindowService \ bin \ Debug \ MyFantabulusWindowService.exe

Wielkość została osiągnięta!


0

Przypadek: testowanie zestawu z projektem konsoli w programowaniu SharePoint - jeśli tworzysz program w SharePoint i widzisz ten alert w VS, upewnij się, że wdrożyłeś zestaw SP w GAC przed przetestowaniem aplikacji konsoli, JEŚLI Twój podstawowy projekt SP ma metody, które musisz zadzwoń w aplikacji testowej konsoli.

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.