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.


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ść.


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.


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,


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


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.


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.


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.


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


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.


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.


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.


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.


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ć.


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.


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.


0

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


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ą.


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.


-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.


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
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.