Jak ustalić, dlaczego Visual Studio może pomijać projekty podczas tworzenia rozwiązania


95

Debuguję czyjąś pracę i rozwiązanie jest dość duże. Kiedy próbuję zbudować całość, kilka projektów w ramach rozwiązania nie tworzy się i po prostu pomija. Wyświetlenie okna wyjściowego podczas procesu kompilacji mówi:

1> ------ Pominięto Odbuduj wszystko: Projekt: pr1lib ------

Jak mogę ustalić, dlaczego te kompilacje zostały pominięte? Nie mogę znaleźć dodatkowego wyjścia.

To jest w przypadku VS2008, a rozwiązanie składa się z kodu C # i C ++.


Oprócz udzielonych odpowiedzi, upewnij się, że ustawienia konfiguracji rozwiązania mają każdy projekt w stanie zaznaczonym (zaznaczone jest pole wyboru), który powinien zostać wyczyszczony / zbudowany:Build > Configuration Manager: check as needed
Metro Smurf

2
Rozwiązywanie problemów z pomijaniem projektów. Pamiętaj, aby dodać /fldo ustawień kompilacji, aby uzyskać plik msbuild.log, który zawiera przyczynę. Na przykład:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D - gdzie w Visual Studio dodałbym „/ fl”? Gdzie pojawiłby się dziennik? Jeśli dodasz to jako odpowiedź, zagłosuję za, ponieważ większość pozostałych odpowiedzi to różne przypadkowe domysły, które mają na celu rozwiązanie problemu, a nie odpowiedź na pierwotne pytanie, które dotyczyło po prostu uzyskania większej ilości informacji o problemie.
PaulG,

@PaulG Zobacz moją odpowiedź poniżej. Po prostu skonfiguruj ustawienia w Opcjach.
Darren Wood,

Odpowiedzi:


88

Kliknij rozwiązanie prawym przyciskiem myszy, wybierz Właściwości, a następnie Właściwości konfiguracji. Tutaj możesz wybrać, które projekty chcesz zbudować.

[ edytuj ]:
Zobacz komentarz Kdt: ... kiedy spojrzałem na właściwości konfiguracyjne ... cel kompilacji projektu został skonfigurowany dla „platform mieszanych”, podczas gdy rozwiązanie było ustawione na tworzenie „dowolnego procesora”.

* Kiedy ten problem mi się przytrafił, główny projekt miał tylko „Dowolny procesor” i ustawił podrzędną bibliotekę dll na „dowolny procesor”, jednak usunąłem ten profil i zostawiłem tylko „x86”. Wybranie x86 tylko dla dll sprawi, że zacznie działać
[/ edit]


20
Miałem tajemniczą „Pominiętą kompilację” i kiedy spojrzałem we właściwościach konfiguracji, projekt był rzeczywiście oznaczony do kompilacji. Jednak cel kompilacji projektu został skonfigurowany dla „platform mieszanych”, podczas gdy rozwiązanie było ustawione na tworzenie „dowolnego procesora” - zmiana tych elementów w celu dopasowania rozwiązała problem.
kdt

2
W moim przypadku, chociaż wszystkie projekty i rozwiązanie były ustawione na „Dowolny procesor”, jeden projekt pominął tworzenie. Dopiero gdy ustawiłem rozwiązanie na „Platformy mieszane”, a potem z powrotem na „Dowolny procesor”, program się budował. Patrząc na różnicę w pliku rozwiązania przed i po, zmieniła się z {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUna {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Jedyną różnicą jest dodana spacja między „Any” i „CPU” na końcu linii.
Simon Tewsi,

6
W moim przypadku wszystkie projekty były ustawione na "Dowolny procesor" i problem został rozwiązany poprzez usunięcie projektów (usunięcie projektu nie powoduje usunięcia plików) i ponowne dodanie ich do rozwiązania.
Hamid Mayeli

40

Właśnie miałem ten sam problem - „rozładuj projekt” i „przeładuj projekt” rozwiązały problem!


Mam ten sam problem i rozładowywanie / ponowne ładowanie działa, ale problem wydaje się wracać, co jest denerwujące, gdy zdarza się to z kilkoma projektami i musisz wyrejestrować / przeładować każdy z nich ... Każdy wie, czy jest sposób, aby całkowicie tego uniknąć?
Liron,

To rozwiązało problem, który powodował, że program Visual Studio błędnie zgłaszał projekty jako już aktualne w oknie danych wyjściowych podczas próby wykonania kompilacji.
Kevin Laity

33

Pomijano operacje kompilacji, przebudowy i czyszczenia. Zwolnienie i ponowne załadowanie nie pomogło, podobnie jak ponowne uruchomienie programu Visual Studio.

Po usunięciu projektu z rozwiązania i dodaniu go z powrotem nie jest już pomijany. Aby go usunąć, w Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt> Usuń> OK. Aby dodać go z powrotem, w Eksploratorze rozwiązań kliknij prawym przyciskiem myszy rozwiązanie> Dodaj> istniejący projekt i wybierz projekt


7
Pamiętaj, że będziesz musiał ponownie dodać wszystkie ProjectReferences do tego projektu.
Józef

9

Jeśli konfiguracją jest x64, a kompilator x64 nie jest zainstalowany, projekt zostanie pominięty.


1
+1 Genius. SP1 można znaleźć tutaj: microsoft.com/download/en/details.aspx?id=10986
ashes999

Gdy kompilator x64 nie jest zainstalowany, nie możesz nawet wybrać x64.
Calmarius

Konfiguracje rozwiązania i projektu mogą definiować i używać wpisu zatytułowanego „x64”. Trzeci plik ddl dla architektury procesora (platforma docelowa - w połowie strony właściwości kompilacji) jest tym, który nie jest dostępny
StingyJack

9

Moje rozwiązanie jest takie samo jak wspomniane wcześniej: Usuń -> Dodaj istniejący projekt

Ale to rozwiązanie oznacza, że znikną odniesienia między projektami

Aby uniknąć ponownego dodawania odniesień: a w przypadku, gdy używasz systemu kontroli wersji, takiego jak GIT lub TFS lub cokolwiek innego, możesz osiągnąć cel, wykonując następujące czynności:

  1. Upewnij się, że wszystkie zmiany zostały zatwierdzone / zarejestrowane przed operacją

  2. Przejrzyj wszystkie projekty, usuwając je z rozwiązania i dodając istniejące

  3. Zauważ, że plik .sln uległ zmianie

  4. Zachowaj nowy plik .sln, ale cofnij zmiany we wszystkich plikach .cspoj za pomocą systemu kontroli wersji



5

Visual Studio 2008 może być spowodowane tym, że 64-bitowy kompilator nie został zainstalowany.

Panel sterowania -> Programy i funkcje -> Microsoft Visual Studio 2008 professional -> [podwójne kliknięcie]

W oknie dialogowym programu Visual Studio

Dalej -> Dodaj / usuń funkcje -> (pod) Visual C ++ -> (wybierz) kompilator x64 i narzędzia


4

Problem występuje również w VS 2010; z proponowanych rozwiązań: edycja build config, czyszczenie, zmiana / ponowna zmiana frameworka docelowego, NIE działa. Ale rozładowanie i ponowne wczytanie projektu tak.


3

Hej, właśnie to naprawiłem. Pomyślałem, że to pomoże. Najprawdopodobniej nie zainstalowałeś odpowiednich kompilatorów wraz ze studiem wizualnym. Zdarzyło mi się to dzisiaj - domyślnie instalator VS 2008 nie instaluje kompilatora x64 C ++.

Jeśli masz dodatek SP1, odinstaluj go przed zmianą instalacji VS. Po zakończeniu ponownie zainstaluj dodatek SP1.


3

Miałem dziwną jedną, którą warto udokumentować pośród innych możliwości tutaj.

Dodałem projekt udostępniony do mojego rozwiązania z kodem, który był używany w dwóch lub trzech innych projektach. Jak wiesz - projekty współdzielone to tylko kod, a nie projekt w tradycyjnym sensie. Nie można „budować” projektu współdzielonego, jest to po prostu kod, który jest osadzany w innych projektach, a następnie tam budowany.

Ale w jakiś sposób mój plik rozwiązania został zaktualizowany, tak jakby współdzielony projekt był własną rzeczą, która wymagała zbudowania. Domyślam się, że za każdym razem, gdy próbowałem budować i nie zmieniałem kodu we współdzielonym projekcie, zorientowałem się, że `` nic się nie zmieniło, pomiń te kompilacje ''

Znalazłem współdzielony projekt w solution.slnpliku:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

.. co jest w porządku. Co nie jest w porządku, ten projekt pojawił się również w GlobalSection(ProjectConfigurationPlatforms) = postSolution:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Usunąłem te cztery wiersze z mojego .slnpliku i teraz wszystko wydaje się znowu szczęśliwe


Świetny! To było to! Usunąłem każdy wiersz z pliku .sln, który zaczynał się od wiersza zawierającego tylko „Global”, i usunąłem wszystkie wiersze do „EndGlobal”. Potem znowu zadziałało.
Ted

Kiedy je usunąłem, zostały dodane automatycznie z powrotem podczas budowania rozwiązania, jednak wróciły z wszystkimi czterema wpisami ustawionymi na wartość Debug | Any CPU. Ale to rozwiązało mój problem.
EspressoBeans

2

Przejdź do menu budowania i wybierz „menedżer konfiguracji”. Spowoduje to wyświetlenie, które projekty są skonfigurowane do budowania w wybranej konfiguracji.


2

Podobna rzecz właśnie mi się przytrafiła. Nie jestem pewien, na czym polegał problem, ale nie wyczyściłbym , nie zbudował , odbudował itp. Pracuję w programie Visual Studio 2017 i chciałem netstandard2.0złożyć zestaw. Problem dla mnie polegał na tym, że jakoś typ projektu był niepoprawny, może zacząłem od netcoreappbiblioteki klas, coś takiego, utknęło w pliku rozwiązania , nie pamiętam. W każdym razie wykonałem kopię zapasową projektu, utworzyłem nowy netstandardprojekt biblioteki klas i uwzględniłem bity z kopii zapasowej, a to naprawiło problem. HTH ktoś.


2
  1. Zamknij studio wizualne
  2. Otwórz plik sln za pomocą notatnika
  3. usuń wszystkie takie rzeczy: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (będzie ich kilka)

4. zapisz plik 5. otwórz Visual Studio i wszystko lepiej


2
Dlaczego to pomaga? Dodaj wyjaśnienie i bądź tak szczegółowy, jak tylko możesz, aby przyszli czytelnicy mogli pomóc zrozumieć, dlaczego musisz podjąć te kroki.

2

zaktualizowałem do wersji 15.9.11, ... po kilku kompilacjach, ten sam problem: większość projektów jest pomijana (które budują się sekundę temu bez problemów). Rozładowanie / przeładowanie rozwiązania zawsze pomaga w moim przypadku, ale wkrótce się powtórzy.

Nie mam pojęcia, dlaczego ... poza dużym błędem w VS2017

Sprawdziłem menedżera konfiguracji, wszystkie znaczniki są ustawione na kompilację.

Może ma to coś wspólnego z pakietami nuget, ale to tylko przypuszczenie

Rozwiązanie ma tylko C ++ / vcxproj, bez csproj. 64 i 32 są zainstalowane oba


2

Pierwszą rzeczą, którą musisz zrobić, jest zdiagnozowanie, dlaczego kompilacja pomija projekty. Aby uzyskać szczegółowe dane wyjściowe kompilacji, zmień szczegółowość na detailedw następującym miejscu w Visual Studio.

wprowadź opis obrazu tutaj


8
Ustawienia oznajmiania niestety nie pomagają. Dane wyjściowe nadal mówią tylko o „pominiętym projekcie” bez wyjaśnienia dlaczego.
PaulG,

1

Miałem ten sam problem, dowiedziałem się, że ustawienie projektu było dla procesora Itanium, zmiana go na Intel naprawiła go.


1

Wystąpił ten sam problem z VS2005, wszystkie konfiguracje były poprawne. Pomijano nawet polecenie Wyczyść projekt.

Wreszcie rozładowanie / ponowne załadowanie zrobiło magię.


1

Kliknij prawym przyciskiem myszy Rozwiązanie w eksploratorze rozwiązań, a następnie kliknij opcję Właściwość u dołu menu. W oknach właściwości kliknij Właściwości konfiguracji -> Konfiguracja w lewym panelu, zobaczysz listę projektów w prawym panelu, upewnij się, że pole wyboru Buduj jest zaznaczone w wyskakującym okienku.


1

Jeśli rozwiązanie zawiera plik projektu NuGet (* .nuproj), spróbuj go zwolnić, a następnie ponownie skompilować rozwiązanie.

To zadziałało dla mnie, ponieważ żadne z powyższych nie zadziałało.


0

Uważam, że czasami, gdy masz platformę docelową ustawioną na, powiedzmy, x86 w swoim rozwiązaniu, a w twoich projektach projekt nie zawsze miał ją wybraną.

Aby dwukrotnie sprawdzić, przejdź do właściwości projektu i sprawdź, czy możesz wybrać tę platformę w ustawieniach Build-> Platform, jeśli nie możesz, musisz przejść do menedżera konfiguracji i utworzyć tę konfigurację.


0

Miałem ten problem z niektórymi projektami Windows CE na nowym komputerze. Wydaje się, że „Zwolnij projekt” i „Ponownie załaduj projekt”, aby rozwiązać problem, ale w rzeczywistości program Visual Studio po prostu przełączył się na inną platformę i ją utworzył.

Okazało się, że chociaż moja platforma WinCE została pokazana jako platforma aktywna, to Visual Studio „naprawdę” tego nie widziało. Rozwiązaniem była ponowna instalacja zestawu WinCE SDK z uprawnieniami administratora :

  • Upewnij się, że program Visual Studio 2008 nie jest uruchomiony.
  • Otwórz „Wiersz polecenia programu Visual Studio 2008” jako administrator. W systemie Windows 7 kliknij prawym przyciskiem myszy skrót i wybierz opcję „Uruchom jako administrator”.
  • Wpisz następujące polecenie: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Na pytanie, czy chcesz wykonać instalację niestandardową, czy kompletną, wybierz niestandardową i poinstruuj instalatora, aby pominął instalację dokumentacji (w moim przypadku ten krok nie był konieczny; w rzeczywistości poprosiłem go o „naprawę” istniejącej instalacji. )
  • zainstalować

0

VS 2008 pominie cele x64, jeśli nie masz zainstalowanego kompilatora x64. VS 2008 domyślnie nie. Coś w rodzaju duh, rzecz.


0

Miałem bardzo podobny problem po wygenerowaniu projektu z dekompilatora z Telerik, a następnie próbie jego ponownej kompilacji. Projekt był pomijany za każdym razem, gdy próbowałem go odbudować. Wypróbowałem wiele z powyższych sugestii, ale dla mnie był to .NET Framework wybrany we właściwościach projektu.

Kliknij prawym przyciskiem myszy projekt w pliku rozwiązania, wybierz właściwości, kartę aplikacji, zmień platformę docelową z 4.0 na 3.5.

Następnie odbuduj i otrzymałem kilka błędów brakujących odwołań do zestawu, co ma sens, ponieważ jeszcze nie dodałem do nich odwołań.


0

Aktualizuję jedną małą aktualizację programu Visual Studio 2017, a następnie instalator przypomina mi o ponownym uruchomieniu komputera, ale nie uruchomiłem go ponownie, gdy buduję projekt lub rozwiązanie w Visual Studio 2017, napotykam ten sam powyższy problem. klucz, więc restartuję komputer, zrobiłem to.:>


0

Miałem ten problem w Visual Studio 2017 15.9.4 i po kilku poszukiwaniach i poświęceniu czasu okazało się, że w moim rozwiązaniu plik .csproj jednego z projektów został uszkodzony po scaleniu w TFS. (Mogłem budować inne projekty, wyładowując problematyczny projekt z rozwiązania). Jak rozwiązałem mój problem, porównałem plik .csproj przed i po scaleniu i naprawiłem to. Przez poprawkę mam na myśli, że ponieważ typ mojego projektu to .netStandard, usunąłem niepotrzebne wiersze, w tym Configuration PropertyGroup , wszystkie i inne w nowym pliku .csproj, aby był podobny do poprzedniej wersji w stylu .netstandard.


0

Miałem podobny problem, miałem jeden projekt, który z jakiegoś powodu nie mógł załadować się do eksploratora rozwiązań. Kiedy załadowałem ten projekt, działał jak urok.


0

Właśnie wpadłem w ten problem:

Zaktualizowałem VS 2017 do najnowszej wersji 15.9.11 i kilka moich projektów zostało zaktualizowanych do .net core 2.2. Początkowo załadowałem wszystkie projekty, które próbowałem zbudować / wyczyścić / przebudować i wszystko zostało pominięte. Wykonaj poniższe czynności, aby rozwiązać:

  1. Rozładowałem każdy projekt i załadowałem je ponownie.
  2. Zamknięto wszystkie wystąpienia VS i otworzyłem VS jako administrator (kliknij prawym przyciskiem myszy skrót i wybierz opcję „Uruchom jako administrator”)

To wszystko wróciło do akcji i udało mi się pomyślnie zbudować wszystkie projekty.


0

Visual Studio 2017

Po dodaniu konfiguracji w Menedżerze konfiguracji

Kliknij prawym przyciskiem myszy projekt -> Tylko projekt -> Tylko buduj / Tylko przebuduj / Tylko wyczyść

czy wszystkie inne ustawienia są prawidłowe.


0

Problem: Rebuilding, Build, Clean pomijał wszystkie moje projekty z wyjątkiem dwóch.

Rozwiązania, które nie działały dla mnie:

  1. Ustawienia konfiguracji rozwiązania były zgodne z oczekiwaniami, więc żadne zmiany w nich nie pomogły.

  2. Rozładowywanie i ponowne ładowanie nie działało.

Przyczyna wystąpienia:

Działo się tak, ponieważ docelowy framework .NET był wyższy (4,7) dla tych 2 projektów, ale niższy dla innych projektów. Początkowo pojawił się monit z prośbą o zainstalowanie .NET 4.7, co zrobiłem, ale okazuje się, że nie był w stanie rozpoznać, że jest zainstalowany, bez ponownego uruchamiania komputera.

Rozwiązania, które działały:

  1. Ponowne uruchomienie komputera załatwiło sprawę. Po ponownym uruchomieniu poprawnie rozpoznał, że zainstalowano .NET 4.7.
  2. Alternatywnie, obniżenie poziomu struktury docelowej projektu przez kliknięcie prawym przyciskiem myszy projektu -> Właściwości -> Aplikacja -> Struktura docelowa i ustawienie go tak samo jak innych projektów, które były pomijane, również rozwiązało problem.

Zalecam zainstalowanie najnowszego .NET Framework i ponowne uruchomienie komputera, aby uniknąć dalszych problemów.


0

Pominie kompilacje dla wszystkich projektów, które mają projekty zależne, których nie udało się zbudować.

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.