2012-06-16 21 views
28

Właśnie zaktualizowałem projekt VS2010 do VS2012 i mam teraz problem, w którym projekty zależne nie są budowane na żądanie. Załóżmy, że mam następujące projekty w moim roztwór:Visual Studio 2012 nie buduje projektów zależnych

  • Library
  • ConsoleApp 1

Gdzie ConsoleApp 1 odnośników A. Biblioteka Gdybym zmienić podpis metody w klasie w bibliotece A i uruchom ConsoleApp 1 wystąpi błąd kompilatora spowodowany brakiem zmian w ConsoleApp 1, ponieważ uruchomienie ConsoleApp 1 NIE spowodowało, że biblioteka A zostanie zbudowana.

Jeśli ręcznie buduję bibliotekę A, a następnie ręcznie kompiluję ConsoleApp 1, to działa dobrze. Oczekuję jednak, że uruchomienie ConsoleApp 1 spowoduje przebudowanie wszystkich zależnych projektów przed uruchomieniem.

Czy mogę coś nieprawidłowo skonfigurować? Czy jest to błąd w VS2012?

+0

Może to być błąd, bo VS 2012 jest jeszcze w fazie RC ... Nie mogę powiedzieć na pewno, chociaż ... – walther

+1

Co jest wyświetlane w zależności projektowych (prawy przycisk myszy na projekcie, następnie wybierz zależności projektu)? –

+0

Zależności projektu wyglądają poprawnie. na przykład. dla ConsoleApp 1 zaznaczone jest pole wyboru biblioteki A. Problem może być gorszy, niż myślałem. Jeśli dokonam zmiany BEZPOŚREDNIO dla klasy w ConsoleApp 1, a następnie naciśnij F5/Run, ConsoleApp 1 NIE odbuduje się i wykonuje ostatnią zbudowaną wersję, bez moich zmian. – user1438940

Odpowiedz

16

Spróbuj usunąć projekt references i dodać je ponownie (ścieżka do naśladowania: References -> (prawy przycisk myszy) Add reference -> Solution -> Project). Przed podję ciem kolejnej próby Save All. Tak to rozwiązałem.

+3

Więc to nie był dokładnie problem, ale skończyło mi się usunięcie WSZYSTKICH projektów z rozwiązania, edycja plików .csproj w celu usunięcia odniesień do projektu, a następnie dodanie każdego projektu do rozwiązania i odtworzenie odnośników. Wydaje się teraz działać dobrze! – user1438940

+2

Miałem ten sam problem wczoraj wieczorem/dziś rano. Usunąłem więc WSZYSTKIE projekty z rozwiązania, dodałem je wszystkie, dodając odniesienia do projektów na każdym etapie, aby je zbudować i wszystko jest w porządku. –

+0

Dwa powyższe komentarze sprawdziły się dla mnie. Usuwanie wszystkich projektów z rozwiązania i ręczne dodawanie ich (budowanie, gdy jechałem). Zwycięzca!!! – Ryan

45

Twoje symptomy brzmią bardzo podobnie do those I experienced a while ago. Upewnij się, że projekty są skonfigurowane zgodnie z bieżącym active rozwiązanie configuration i platformy aktywnego rozwiązania pod Build->Configuration Manager.

+0

Zrobiłem to dla mnie; Wystąpił błąd w trybie zwolnienia, a pola wyboru dla każdego projektu były wyłączone. +1 –

+2

Rozwiązanie działa również dla Visual Studio 2010 – Entrodus

+1

Nice. Wybrałem "Any CPU" i nic nie działało. Właśnie przestawiłem konfigurację aktywnego rozwiązania na "Mixed Platforms", a teraz projekty zależne są ponownie budowane. –

18

Dzieje się tak, gdy plik .suo dla rozwiązania staje się zablokowany i Visual Studio nie może już do niego pisać. Kolejnym symptomem tego problemu jest to, że podczas otwierania pojawi się plik temp suo, który zostanie utworzony obok rozwiązania. Spróbuj zamknąć program Visual Studio i usunąć wszystkie pliki * .suo w obszarze roboczym. Następnie ponownie otwórz Visual Studio i przebuduj wszystko. Nie musisz ręcznie odbudowywać swojego rozwiązania. Naprawi to problem, gdy jest spowodowane przez zablokowane .suo, tak jak stało się to z moim kolegą.

W jego przypadku przyczyną było zamknięcie laptopa, podczas gdy Visual Studio było nadal otwarte. Może zamknięcie systemu Windows nie zakończyło się czysto? Możemy tylko spekulować, w jaki sposób .suo zostało pierwotnie zamknięte.

+0

W moim przypadku nie sprawdziłem, czy plik .suo był zablokowany. Po prostu nadal widziałem błędy kompilacji, które pojawiły się po pomyślnym ukończeniu kompilacji, a także program Visual Studio zmyślający kod podczas przeprowadzania refaktoryzacji Zmień nazwę. Usunąłem większy z dwóch plików .suo obok rozwiązania (było .v12.suo), a błędy kompilacji już nie istnieją. – superjos

+0

to naprawiło mój problem –

6

Wypróbowałem wszystkie powyższe rozwiązania, które nie rozwiązały problemu. Zauważyłem, że to właśnie z powodu Active configuration w ConfigurationManager został ustawiony, aby budować tylko projekt główny (rozruchowy).

idź do Build>ConfigurationManager

Upewnić się, że wszystkie projekty, które chcesz zbudować są sprawdzane jak na zrzucie poniżej Jest to podobny problem na forum Asp.Net here a to szczegóły na MSDN . Mimo że został weired, bcoz nigdy Zmieniłem te ustawienia i działa poprawnie w ubiegłym tygodniu enter image description here

6

jakie napotkał podobny problem, rozwiązanie (lub probelem) zostały ustawienia Build and Run pod Tools > Options... > Projects and Solutions > Build and Run gdzie „budować tylko uruchomienie projekty i zależności w Run "został sprawdzony. Zrzut ekranu pokazuje moje aktualnie działające rozwiązanie.

Visual Studio 2012 Options

+0

Dla mnie visual studio było bardzo zdezorientowane, więc odznaczałem to pole i przebudowałem, a wszystkie błędy zniknęły. Sprawdziłem skrzynkę i wykonałem przebudowę i wszystko wydaje się znów działać. Dzięki. – joshboley

0

Right Click rozwiązanie w Solution Explorer kliknij "Czyste rozwiązanie".

0

upewnij się, że projekt odwołania ma taką samą lub wyższą wersję środowiska .Net niż projekt, do którego się odwołuje.

+1

na przykład ..... – ggdx

1

Dla mnie rozwiązanie problemu polega na kliknięciu prawym przyciskiem myszy na projekcie; Buduj zależności> zależności projektu. Następnie ręcznie ustaw kolejność dla każdego projektu. bardzo bolesne, jeśli masz dużo projektów.

enter image description here

Powiązane problemy