Mam aplikację WebApplication, która zawiera odwołanie do usług WCF.
Podczas kompilowania przy użyciu programu Visual Studio 2010 kompilacja kończy się niepowodzeniem bez żadnego błędu ani ostrzeżenia. Jednak budowanie .csproj
użytkowania MsBuild
kończy się sukcesem.
Nie mogę dowiedzieć się, co mam spróbować w programie Visual Studio, aby rozwiązać / zdiagnozować problem. Czy możesz mi pomóc?
EDYTOWAĆ:
Dowiaduję się, że kompilacja zawodziła,
Z tekstu wyświetlanego na pasku stanu.
Z okna wyjściowego:
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
c#
asp.net
visual-studio-2010
Abhijeet
źródło
źródło
Odpowiedzi:
Właśnie znalazłem się w podobnej sytuacji. W moim przypadku niestandardowa akcja (z pakietu MSBuildVersioning dostępnego na Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ), która pojawiła się w elemencie docelowym BeforeBuild pliku csproj, kończyła się niepowodzeniem bez wyzwalania żadnego komunikatu o błędzie w normalne miejsce.
Udało mi się to ustalić, ustawiając „Szczegółowość danych wyjściowych kompilacji projektu MSBuild” (w najnowszej karcie Narzędzia programu Visual Studio [ścieżka: Narzędzia> Opcje> Kompiluj i uruchom ]) na „ Diagnostyka ”, jak pokazano poniżej. To następnie pokazało, że akcja niestandardowa (w moim przypadku HgVersionFile) zawiodła.
źródło
#pragma warning disable
instrukcji i były widoczne tylko wtedy, gdy szukałem „błędu” w oknie wyjściowym.Build + Intellisense pochłonął komunikaty o błędach. Wybranie opcji Tylko kompilacja wyświetliło je.
źródło
źródło
.vs
folderu i ponowne uruchomienie VS.Restart VS (2013 Pro, Win 8.1) zrobił to za mnie.
źródło
Usuń folder .vs i uruchom ponownie VS, działało dla mnie
źródło
Chcę rozwinąć odpowiedź Sasse .
Aby rozwiązać problem z Visual Studio 2015 Update 2, musiałem budować każdy projekt pojedynczo i patrzeć na okno wyjściowe po każdej kompilacji.
Jeden projekt dał mi
W oknie Lista błędów nie wystąpił błąd, ale zespół miał żółty znak ostrzegawczy w obszarze „Odnośniki”.
Potem zobaczyłem, że projekt odniesienia dotyczył 4.5.1, a projekt, do którego się odwołujesz 4.6.1. Zmiana wersji 4.6.1 na 4.5.1 umożliwiła pomyślne zakończenie kompilacji.
źródło
Nic nie działało, więc usunąłem plik .suo, zrestartowałem VS, wyczyściłem rzutowany, a kompilacja zadziałała.
źródło
Wydaje się, że istnieje wiele odpowiedzi na to pytanie, więc dodam moje z własnego doświadczenia, mając nadzieję, że zaoszczędzi to komuś czasu / stresu.
Upewnij się, że wszystkie projekty w rozwiązaniu są przeznaczone dla tej samej wersji .NET.
Podobnie jak w przypadku OP, wystąpiło 0 błędów, ale kompilacja wciąż kończyła się niepowodzeniem. Jednak był jeden wpis ostrzegawczy (ukryty między kilkuset bezużytecznymi ostrzeżeniami XML ...) mówiący, że jeden projekt był przeznaczony dla innej wersji .NET niż projekt, do którego się odwoływał. Cały problem polegał na tym, że jeden projekt w moim rozwiązaniu był przeznaczony dla .NET 4.5.2, podczas gdy reszta była ukierunkowana na 4.5.1. To powinno działać, nawet z tej rozbieżności (stąd dlaczego to było tylko ostrzeżenie), ale niestety, to złamał kompilacji.
Dziwną częścią było to, że przez jakiś czas działał dobrze, ale nagle kompilacja zaczęła raz zawieść, powodując ten problem. Nie jestem pewien, co zrobiłem, aby zacząć narzekać na różne wersje docelowe .NET, ale czuję, że w programie Visual Studio są tylko pewne tajemnice, które nigdy nie zostaną rozwiązane.
źródło
Przejdź do okna wyjściowego, wyszukaj „błąd” w oknie wyjściowym, TADA
źródło
Najpierw „Wyczyść rozwiązanie”, a następnie Odbuduj rozwiązanie.
Jeśli nie zadziała, zamknij rozwiązanie i uruchom je ponownie.
Spróbuj tych rzeczy, mam nadzieję, że na pewno zadziała.
źródło
Inną możliwością jest to, że program Visual Studio musi działać jako administrator, może to być związane z wdrażaniem na lokalnym serwerze IIS lub z inną potrzebą wdrożenia.
źródło
może się to zdarzyć, gdy jeden z przywoływanych projektów jest nowszą wersją platformy .NET Framework niż bieżący projekt.
źródło
Miałem ten sam problem i wyśledziłem go do opcji listy błędów „Build + Intellisense”.
Jeśli ta opcja jest zaznaczona, na liście nie są wyświetlane żadne błędy. Przełącz się na „ Tylko kompilacja ”, a błędy pojawią się zgodnie z oczekiwaniami.
Wygląda jak błąd w programie Visual Studio. Ponowne uruchomienie Visual Studio rozwiązało ten problem .
źródło
Miałem podobny problem po dodaniu nowego projektu (o nazwie „TestCleaner”) do mojego rozwiązania: kompilacja nie powiodła się, brak błędów.
Zwiększyłem szczegółowość wyjścia (zobacz instrukcje Richarda J Fostera) i przeszukałem wynik pod kątem „niepowodzenia”. Szybko odkryłem, który projekt się nie powiódł i dlaczego: projekt „TestRunner” zakończył się niepowodzeniem i wystąpił „ błąd CS0246: nie można znaleźć typu lub nazwy przestrzeni nazw„ TestCleaner ”” (mimo że w kodzie nie zaznaczono żadnych problemów).
Po sprawdzeniu referencji TestRunner, na pewno odwołanie do TestCleaner zostało oznaczone jako nierozwiązane i brakowało ścieżki we właściwościach referencyjnych. Usunięcie i ponowne dodanie tego nie rozwiązało. Ponownie, bez wyjaśnienia, dlaczego.
nierozwiązane odniesienie
W końcu odkryłem przyczynę: „TestCleaner” używał innego docelowego frameworka niż inne projekty. To był .Net 4.5.2; pozostałe 4,5.
źródło
Tylko ze względu na ukończenie i może pomóc komuś napotkać ten sam błąd w przyszłości, używałem interfejsu Metro Mahapps i zmieniłem XAML jednego okna, ale zapomniałem zmienić częściowej klasy w kodzie. W takim przypadku kompilacja nie powiodła się bez błędu lub ostrzeżenia i mogłem się tego dowiedzieć, zwiększając szczegółowość danych wyjściowych z ustawień:
źródło
Miałem ten sam problem. Okno listy błędów zawiera 2 menu rozwijane „Pokaż elementy zawarte w” i „Pokaż wygenerowane problemy”. Nazwy te są widoczne po najechaniu kursorem na listę rozwijaną. Lista rozwijana „Pokaż wygenerowane problemy” została ustawiona na „Kompiluj + IntelliSense” i po zmianie na „Tylko kompilacja” błędy pojawiały się na liście.
źródło
Dla mnie
Target Framework
był to problem.Mój projekt
Target Framework
był,4.5.2
a projekt przywoływanyTarget Framework
był4.6.1
.Po zaktualizowaniu projektu
Target Framework
do4.6.1
, problem został rozwiązany.źródło
Miałem ten sam problem! Po prostu usuń folder bin i uruchom ponownie
VS
. To wszystko. przetestowany wVS 2013
.źródło
Rozwiązaniem dla mnie było usunięcie
.vs
folderu z katalogu głównego rozwiązania i ponowne uruchomienie programu Visual Studio.Może być również ważne, aby powiedzieć, że chociaż błędy nie były wyświetlane w okienku Lista błędów, nadal były obecne w danych wyjściowych z kompilacji.
źródło
Spróbuj zbudować swój projekt z wiersza poleceń programu PowerShell:
Następnie możesz zobaczyć wszelkie błędy w danych wyjściowych wiersza polecenia, nawet jeśli program Visual Studio odtwarza w chowanego z komunikatami o błędach kompilacji.
źródło
Zdarzyło mi się to po dodaniu nowej strony do projektu asp.net.
Wyklułem stronę i sprawiłem, że zostanie pomyślnie zbudowana.
Następnie dodałem ponownie stronę z wykomentowanym całym kodem. Sukces.
Potem stopniowo odkomentowałem kod i wszystko działało.
źródło
Miałem ten sam problem po usunięciu kilku formularzy. Błędy pojawiły się, gdy wszedłem do kodu i wykonałem „Pokaż definicję” dla jednego z usuniętych elementów sterujących.
Miałem również na celu wyższy framework w jednym z moich projektów, więc mógł to być również problem.
źródło
Wypróbowałem wszystko, ale nic nie działało w moim przypadku, a następnie zmieniłem wspomniane ustawienia, które rozwiązały problem całkiem dobrze. Spróbuj, jeśli to możliwe, jakiejkolwiek pomocy późniejszym widzom. Te ustawienia mogą się różnić w zależności od sytuacji, ale upewnij się, że skompiluj wszystkie dołączone biblioteki DLL z tymi samymi ustawieniami konfiguracji, które zachowałeś na początku (wspomniane na obrazku).
Twoje zdrowie!
źródło
Jeśli pakiet NuGet „Microsoft.Net.Compilers” jest zainstalowany, upewnij się, że pasuje do wersji programu Visual Studio (wersja narzędzi kompilacji).
Wersje 1.x oznaczają C # 6.0 (Visual Studio 2015 i aktualizacje). Na przykład 1.3.2
Więc nie aktualizuj do wersji powyżej 1.x, jeśli używasz VS2015
https://stackoverflow.com/a/44397905/3862615
źródło
Miałem naprawdę stary projekt na starszej maszynie. Projekt budował się poprawnie, kiedy wyłączyłem maszynę. Dzisiaj otrzymuję błąd kompilacji, ale nie ma komunikatu o błędzie. Po wypróbowaniu kilku sugestii z góry, bez powodzenia.
W programie Visual Studio 2015 włączyłem szczegółowy program MSBuild w obszarze narzędzia > opcje> projekty i rozwiązania> kompiluj i uruchamiaj
Dało mi kilka szczegółów na temat kompilacji, ale bez błędów. Następnie próbowałem sprawdzić rozszerzenia i aktualizacje (Narzędzia> Rozszerzenia i aktualizacje) i stwierdziłem, że kilka z nich wymaga aktualizacji.
Winowajcą był pakiet Nuget , po aktualizacji Nugeta - kompilacja się powiodła.
źródło
Może to wynikać z różnicy wersji przeglądarki raportów w Twoim projekcie i VS
źródło
Ponieważ wszystko nie działało, okazało się, że błędy nie są wyświetlane podczas otwierania projektu jako rozwiązania (.sln), podczas gdy błąd pojawia się podczas otwierania projektu jako projektu.
źródło
Miałem ten sam problem, zmieniłem Narzędzia -> Opcje -> Projekty i rozwiązania / Buduj i uruchamiaj -> Szczegółowość pliku dziennika kompilacji projektu MSBuild [ Diagnostyka ]. Ta opcja pokazuje błąd w dzienniku, z pewnych powodów mój VS nie pokazuje błędu w zakładce Błędy!
Wykonaj powyższe ustawienia i kopię wyjściową w notatniku / edytorze tekstowym i wyszukaj błąd. Pokaże wszystkie błędy.
źródło
Ponowne uruchomienie Visual Studio działało dla mnie. Spróbuj również normalnie ponownie uruchomić program Visual Studio (nie uruchamiaj jako administrator). Spróbuj ponownie uruchomić system i powtórz powyższy krok.
źródło
Inny sposób odtworzenia tego objawu:
Dodałem nowy projekt do istniejącego rozwiązania, a wynik kompilacji zgłosił błędy, takie jak „nie można znaleźć typu lub nazwy przestrzeni nazw X ...”, ale na liście błędów nie przedstawiono żadnych błędów.
Klasy, o których wspomniałem, znajdowały się w innych projektach (do których się odwoływałem) w tym samym rozwiązaniu.
Okazało się, że przez pomyłkę w nowym projekcie wybrałem wcześniejszą wersję .net. Kiedy przeszedłem na tę samą wersję, co inne projekty, wszystko zbudowałem bez żadnych błędów.
źródło