VS 2015 Update 1 - twierdzenie, że debuguję kompilację wydania

97

Po aktualizacji do VS 2015 Update 1, jeśli uruchomię projekt sieciowy (MVC), zatrzymam aplikację, a następnie spróbuję ją ponownie uruchomić, VS zatrzymuje się i wyświetla okno dialogowe z żądaniem

Debugujesz kompilację wydania <myproject.dll>.

Używanie Just My Code z kompilacjami wydań przy użyciu optymalizacji kompilatora skutkuje pogorszeniem działania debugowania (np. Punkty przerwania nie zostaną trafione).

Problem polega na tym, że nie uruchamiam kompilacji wydania. Wyraźnie korzystam z (tej samej) kompilacji debugowania, którą właśnie uruchomiłem! Dlaczego VS myśli, że używam kompilacji wydania?

Czyszczenie roztworu i ponowne uruchomienie kasuje komunikat o błędzie, więc coś jest gdzieś wężem.

John T.
źródło
1
Chciałbym usłyszeć, czy to naprawiłeś. Po zainstalowaniu Aktualizacji 1 napotykam dokładnie ten sam problem. Czyszczenie / ponowne uruchomienie tymczasowo prowadzi mnie do końca, ale po prostu dzieje się to ponownie następnym razem.
Jerad Rose
1
Niestety nie. Jestem w kontakcie z pomocą techniczną Microsoft, która bada problem.
John T
2
Mimo wszystko pomoc techniczna firmy Microsoft odtworzyła problem i prowadzi dochodzenie. Jak tylko usłyszę, odpowiem / odpowiem.
John T
@JohnT Masz już szczęście?
Nick
@Nick Właściwie nie. Pinguję do mojego kontaktu, aby sprawdzić, czy jest jakaś aktualizacja.
John T

Odpowiedzi:

58

Firma Microsoft informuje, że jest to znany problem (pierwotnie trafił do zespołu ds. Debugera, ale ustalono, że był to problem z kompilacją, a teraz jest w rękach zespołu ds. Systemu projektu. Istnieją inne otwarte błędy w tym problemie, oceniono jako priorytet 1, więc powinno być na dobrej drodze do następnej aktualizacji. Chociaż zgodnie z oczekiwaniami, nie można składać żadnych obietnic, kiedy zostanie wydana (lub co faktycznie jest w aktualizacji).

Więc. Jest znany i jest w trakcie opracowywania. Przynajmniej wyłączenie opcji „Włącz tylko mój kod” w ogólnych opcjach debugowania wydaje się na razie obejść.

John T.
źródło
13
Nadal otrzymuję to w VS2017, ale tylko dla jednej biblioteki DLL. Jakakolwiek aktualizacja?
JMK
1
Czy istnieje adres URL, taki jak na UserVoice, który śledzi ten problem?
UuDdLrLrSs
Używam tego samego obejścia dla VS 2017. Dziwne, że nie został jeszcze poprawnie naprawiony. W każdym razie dzięki za pracę.
Naveen Kumar V,
6
Nadal otrzymuję to w VS2019.
philu
46

Jak wspomniał @romanoza, Microsoft zaktualizował (obecnie brakujący) raport o błędzie Microsoft Connect (znajdujący się wcześniej tutaj , na wypadek, gdybyś mógł gdzieś znaleźć archiwum) o następujące informacje:

Odznacz ustawienie Debuguj -> Opcje -> Wstrzymaj optymalizację JIT przy ładowaniu modułu (tylko zarządzane)

To jest obejście. Później mówią:

Zalecamy pozostawienie go niezaznaczonego, ponieważ odznaczenie go poprawi zarówno wydajność, jak i zachowanie tylko mojego kodu w określonych scenariuszach.

Na koniec podziękowanie:

Jest to błąd polegający na tym, że nie działa przy włączonym tym ustawieniu i pracujemy nad rozwiązaniem tej sytuacji, na wypadek gdyby niektórzy klienci nadal chcieli debugować przy włączonym tym ustawieniu.

Aktualizacja : Na podstawie uwag, wydaje się, że skrzynka jest teraz un domyślnie zaznaczone dla niektórych deweloperów, a sprawdzenie go można naprawić identyczny problem w niektórych przypadkach. Bardzo dziwny.

Nate Cook
źródło
39
W mojej sytuacji faktycznie musiałem postąpić dokładnie odwrotnie. Musiałem zaznaczyć pole wyboru dla wspomnianego powyżej ustawienia. To wszystko jest bardzo dziwne.
dyslexicanaboko
2
Tak samo jak dyslexicanaboko - musiałem zaznaczyć pole wyboru, aby usunąć wiadomość.
Jay Cummins
5
Ten sam problem w kwietniowym wydaniu programu Visual Studio 2017, trzeba było zaznaczyć pole wyboru
Rafael
1
Głosuję za nie dlatego, że odpowiedź zadziałała, ale dlatego, że pierwszy komentarz do odpowiedzi jest tym, co zadziałało! A to zasługuje na wyeksponowanie. (Zwróć też uwagę, że link zewnętrzny jest nieaktywny. Prowadzi do strony „Microsoft Connect został wycofany”).
Rozczarowany
Dzięki za komentarz Craig. Dokonałem małej zmiany na podstawie Twojej opinii. Miejmy nadzieję, że pomoże to innym w rozwoju!
Nate Cook
25

Zauważyłem, że odpowiedzi tutaj są niekompletne, miałem ten sam problem i został on rozwiązany przez otwarcie właściwości projektu i na karcie kompilacji i konfiguracji debugowania odznaczając opcję „optymalizuj kod” . Powinieneś także sprawdzić menedżera konfiguracji, jak wspomniano powyżej, aby upewnić się, że to również działa. Odpowiedź przyszła z tego postu i powinni otrzymać kredyt: Projekt VS2015 nie działa już w trybie debugowania

Dzięki,

cesar-moya
źródło
2
Po tylu wysiłkach stwierdziłem, że to była główna przyczyna. Dziwnie włączam Optymalizuj kod Visual studio uważa, że ​​jego tryb wydania , a nawet punkty przerwania, nie działają. Wszystko o debugowaniu się rozpada.
Morse,
1
Uratowałeś mi życie. Jesteś bogiem.
SamyCode
12

Rozwiązałem problem ustawiając konfigurację na Debugowanie w oknie Menedżera konfiguracji, zgodnie z sugestią w tej odpowiedzi .

wprowadź opis obrazu tutaj

fabriciorissetto
źródło
Nie jest to jednak domyślne ustawienie (ktoś musiał poważnie zepsuć twoje konfiguracje, aby tak się stało!) I większość z nas już to sprawdzała. (I tak to była pierwsza rzecz, którą sprawdziłem). - Jak powiedział operator operacyjny, zdecydowanie buduje w trybie debugowania i wiem, że robię również rzeczywistą kompilację debugowania - wbudowany w trybie debugowania, z wyłączonymi optymalizacjami, debugowaniem zadeklarowano, generowany jest prawidłowy
plik PDB
1
Dobrze, że umieściłeś to tutaj Fabricio, założę się, że jest kilka osób, które też to przegapiły.
Molibar
11

Czyszczenie (i odbudowa) rozwiązanie działa dla mnie jako tymczasowe obejście. Możesz także wybrać Debuguj> Opcje i odznaczyć pole Suppress JIT optimizationwyboru.

romanoza
źródło
VS 2017 w wersji 15.1 dał mi fałszywy błąd („debugowanie kompilacji wydania”). Wyczyść i odbuduj sprawiło, że zniknęło.
DeveloperDan
Visual Studio 2015 Update 3, ten błąd występował, gdy opcja Suppress JIT nie była zaznaczona. Wybranie go rozwiązało problem.
Saravanan Sachi
6

Mam ten sam problem od czasu aktualizacji do VS2015 Update 1.

Znalazłem podobny raport na forach Microsoft Visual Studio, który wskazuje na zgłoszony tutaj raport o błędzie

Istnieją różne obejścia, ale myślę, że podstawowym problemem jest to, że IIS Express nie wyłącza się po zakończeniu debugowania - i nie jest to spowodowane odznaczeniem opcji Edytuj i kontynuuj. Najszybsze obejście, jakie mogę znaleźć, dopóki błąd nie zostanie naprawiony:

  • Kliknij prawym przyciskiem myszy ikonę IIS Express w zasobniku i zamknij ją po debugowaniu (Podziękowania dla Davida Totzke, który dostarczył obejście w raporcie o błędzie)

Niezbyt dobre, ale nie sądzę, aby w tej chwili dostępne było odpowiednie rozwiązanie.

Jon
źródło
2
Obecnie używam rozwiązania do czyszczenia, a następnie Rozpocznij debugowanie.
Jerad Rose
1
Nawiasem mówiąc, czasami muszę faktycznie zabić iisexpress; wyjście z menu kontekstowego nie powoduje śmierci
Mark Sowul,
3

Napotkałem ten sam problem. Rozwiązałem problem, ręcznie usuwając wszystkie pliki z folderu „bin”, a następnie odbudowałem rozwiązanie. Nie widzę już tego okna dialogowego.

Bps
źródło
2
Już tego próbowałem, ale nie pomogło. Ten sam problem dotyczy zupełnie nowego projektu.
John T
Miałem też zamieścić tę odpowiedź :) To załatwiło sprawę (VS2015 Update 3).
Caio Campos
3

W moim przypadku zmieniłem „Platformę aktywnych rozwiązań” dla całego rozwiązania w „Menedżerze konfiguracji” z x86 na Dowolny procesor, naprawiłem problem

Mak R
źródło
Dla mnie też zadziałało.
Rahatur
1

Sprawdź właściwości konfiguracyjne rozwiązania. Napotkałem ten sam problem i odkryłem, że moja konfiguracja debugowania faktycznie budowała niektóre projekty z konfiguracją wydania.

user5632285
źródło
4
Przepraszam, nie, ponieważ mówię, że nic nie jest ustawione na wydanie - wszystkie konfiguracje to debugowanie. Uruchomienie po wyczyszczeniu NIE wyświetla błędu. Natychmiastowe zatrzymanie i ponowne uruchomienie pokazuje błąd - NIC nie zmieniło się w międzyczasie, w tym projekt NIE JESZCZE ODBUDOWANY.
John T
1

Zauważyłem, że Visual Studio nie zabijał procesu iisexpress po zatrzymaniu debugera. Wydawało się, że ręczne zabijanie tego procesu rozwiązało problem.

Wygląda na to, że zostało to naprawione w aktualizacji 2.

Alex
źródło
1

Wydaje się, że rozwiązań jest tyle, ile osób ma problem, ale w moim przypadku musiałem usunąć i ponownie dodać odniesienie do projektu. Odniesienie do projektu znajdowało się w projekcie testu jednostkowego w tym samym rozwiązaniu.

Crowcoder
źródło
1

W moim przypadku komunikat o błędzie był poprawny. Uruchomiłem aplikację, która załadowała wydaną wersję. Więc poprawiłem to, ładując zamiast tego wersję debugowania.

Wiem, że jestem elementarny i zdaję sobie sprawę, że wyglądam na idiotę. Ale czasami problem dotyczy dokładnie tego, co zostało zgłoszone.

Randy Richardson
źródło
0

Sprawdź, czy adres URL projektu IIS faktycznie wskazuje miejsce, które Twoim zdaniem wskazuje. W razie wątpliwości kliknij przycisk „Utwórz katalog wirtualny”.

Niedawno miałem ten problem, gdy korzystałem z tymczasowej wersji produkcyjnej bazy kodu i ponownie przypisałem folder w usługach IIS do wersji tymczasowej, która faktycznie była uruchomiona kompilacją produkcyjną, a nie wersją debugowania, którą próbowałem debugować.

Andy Twiss
źródło
0

Dla mnie znalazłem odniesienia do folderu 3 \ Release \ w tym pliku FileListAbsolute.txt:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csproj.FileListAbsolute.txt

Byli tacy:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csprojResolveAssemblyReference.cache

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.dll

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.pdb

Usunięcie tych 3 linii poza VS, a następnie ponowne otwarcie rozwiązania rozwiązało problem. Mam nadzieję, że to pomoże.

Ian_G
źródło
0

Wypróbowałem wszystkie odpowiedzi, a jedna działała dla mnie, to usunięcie pakietu NuGet, a nie tylko odwołania, ale usunięcie pakietu, w moim przypadku PostSharp. Na początku próbowałem usunąć odniesienie ze wszystkich projektów i to nie działa, po czym po prostu usunąłem pakiety z menedżera. Nie wiem, jaki jest dokładnie powód, ale właśnie to rozwiązało moje problemy, mam nadzieję, że mogłoby to komuś pomóc.

JohnZ
źródło
0

Uruchom ponownie program Visual Studio. To rozwiązało problem w 2017 Professional.

TomDane
źródło
0

Oto, co zadziałało dla mnie.

Jeśli jest to projekt sieci Web, przejdź do właściwości projektu i

  1. Jeśli wybrano Lokalne usługi IIS, uruchom ponownie serwer IIS.
  2. Jeśli wybrano IIS Express, zamknij IIS Express z ikony na pasku zadań.

Wygląda na to, że niektóre biblioteki DLL są buforowane, więc powyższe kroki unieważnią pamięć podręczną.

KodowanieYoshi
źródło
0

Stało się to w programie Visual Studio 2019 w aplikacji platformy UWP. Usunięcie zaznaczenia kodu Optimize w ustawieniach csproj / build rozwiązało problem.

Sean Anderson
źródło
-1

Jestem pewien, że zostało to naprawione w programie Visual Studio 2015 Update 2.

Widziałem to cały czas (wiele razy dziennie) i ani razu nie widziałem tego od czasu aktualizacji do Aktualizacji 2.

Jerad Rose
źródło
4
Zdecydowanie nie. Dostaję to nagle w VS 2015 Update 3.
jpmc26
1
Nie powiedziałem, że nie złamali tego ponownie w 3. aktualizacji;)
Jerad Rose
Mam aktualizację 2 na dev. box w tej chwili i nadal go widzę. - Nie widzę tego na moich pudełkach z aktualizacją 3. : - /
BrainSlugs83