So ermitteln Sie, warum Visual Studio beim Erstellen einer Lösung möglicherweise Projekte überspringt

92

Ich debugge die Arbeit eines anderen und die Lösung ist ziemlich groß. Wenn ich versuche, das Ganze zu erstellen, werden mehrere Projekte in der Lösung nicht erstellt und nur übersprungen. Das Anzeigen des Ausgabefensters während des Erstellungsprozesses lautet:

1> ------ Übersprungen Alle neu erstellen: Projekt: pr1lib ------

Wie kann ich feststellen, warum diese Builds übersprungen wurden? Ich kann keine zusätzliche Ausgabe finden.

Dies ist mit VS2008 und die Lösung besteht aus C # - und C ++ - Code.

Matt
quelle
Stellen Sie zusätzlich zu den bereitgestellten Antworten sicher, dass in den Konfigurationseinstellungen der Lösung jedes Projekt aktiviert ist (Kontrollkästchen ist aktiviert), das gereinigt / erstellt werden soll:Build > Configuration Manager: check as needed
Metro Smurf
2
Um zu beheben, warum Projekte übersprungen werden. Stellen Sie sicher, dass Sie /fldie Build-Einstellungen hinzufügen , um eine msbuild.log-Datei zu erhalten, die den Grund enthält. Zum Beispiel: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 - Wo würde ich in Visual Studio '/ fl' hinzufügen? Wo würde das Protokoll erscheinen? Wenn Sie dies als Antwort hinzufügen, werde ich zustimmen, da die meisten anderen Antworten verschiedene zufällige Vermutungen sind, um das Problem anzugehen, anstatt die ursprüngliche Frage zu beantworten, bei der es lediglich darum ging, mehr Informationen über das Problem zu erhalten.
PaulG
@PaulG Siehe meine Antwort unten. Stellen Sie einfach die Einstellungen in den Optionen ein.
Darren Wood

Antworten:

85

Klicken Sie mit der rechten Maustaste auf die Lösung, wählen Sie Eigenschaften und dann Konfigurationseigenschaften. Hier können Sie auswählen, welche Projekte erstellt werden sollen.

[ Bearbeiten ]:
Siehe Kdts Kommentar: ... als ich in den Konfigurationseigenschaften nachgesehen habe ... wurde das Projekterstellungsziel für "Gemischte Plattformen" konfiguriert, während die Lösung auf "Beliebige CPU" eingestellt war.

* Als mir dieses Problem passierte, hatte das Hauptprojekt nur "Beliebige CPU" und setzte die untergeordnete DLL auch auf "Beliebige CPU". Ich hatte dieses Profil jedoch gelöscht und nur "x86" belassen. Wenn Sie x86 nur für die DLL auswählen, funktioniert es
[/ edit]

Tchami
quelle
20
Ich hatte einen mysteriösen "Übersprungenen Build" und als ich mir die Konfigurationseigenschaften ansah, war das Projekt tatsächlich für den Build markiert. Das Projekterstellungsziel wurde jedoch für "Gemischte Plattformen" konfiguriert, während die Lösung auf "Beliebige CPU" eingestellt war. Durch Ändern dieser Ziele wurde das Problem behoben.
kdt
2
In meinem Fall übersprang ein Projekt das Erstellen, obwohl alle Projekte und die Lösung auf "Beliebige CPU" eingestellt waren. Erst nachdem ich die Lösung auf "Mixed Platforms" und dann wieder auf "Any CPU" eingestellt hatte, wurde sie erstellt. Wenn Sie sich vorher und nachher einen Unterschied in der Lösungsdatei ansehen, ändert sich dieser von {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUzu {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Der einzige Unterschied ist der zusätzliche Abstand zwischen "Beliebig" und "CPU" am Ende der Zeile.
Simon Tewsi
5
In meinem Fall wurden alle Projekte auf "Beliebige CPU" gesetzt und das Problem behoben, indem die Projekte entfernt wurden (das Entfernen des Projekts führt nicht zum Entfernen der Dateien) und erneutes Hinzufügen zur Lösung.
Hamid Mayeli
41

Ich hatte gerade das gleiche Problem - "Projekt entladen" und "Projekt neu laden" lösten das Problem!

Sharon Ben-Avraham
quelle
Ich habe das gleiche Problem, und das Entladen / Neuladen funktioniert, aber das Problem scheint wieder aufzutreten, was ärgerlich ist, wenn es bei einer Reihe von Projekten passiert und Sie jedes von ihnen entladen / neu laden müssen ... Jeder weiß, ob es eines gibt Weg, dies insgesamt zu vermeiden?
Liron
Dies hat das Problem für mich behoben, als Visual Studio beim Versuch, einen Build zu erstellen, fälschlicherweise Projekte als bereits aktuell im Ausgabefenster gemeldet hat.
Kevin Laity
25

Build-, Rebuild- und Clean-Vorgänge wurden übersprungen. Das Entladen und Neuladen half nicht und Visual Studio auch nicht neu.

Sobald ich das Projekt aus der Lösung entfernt und wieder hinzugefügt habe, wird es nicht mehr übersprungen. Um es zu entfernen, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt> Entfernen> OK. Um es wieder hinzuzufügen, klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Lösung> Hinzufügen> Vorhandenes Projekt und wählen Sie Ihr Projekt aus

user1325179
quelle
6
Beachten Sie, dass Sie diesem Projekt alle ProjectReferences erneut hinzufügen müssen.
Joseph
9

Wenn die Konfigurationskonfiguration x64 ist und der x64-Compiler nicht installiert ist, wird das Projekt übersprungen.

Dave
quelle
1
+1 Genie. Sie finden SP1 hier: microsoft.com/download/en/details.aspx?id=10986
ashes999
Wenn der x64-Compiler nicht installiert ist, können Sie nicht einmal x64 auswählen.
Calmarius
Die Lösungs- und Projektkonfigurationen können einen Eintrag mit dem Titel "x64" definieren und verwenden. Die 3. ddl für den Prozessorbogen (Plattformziel - auf halber Höhe der Seite mit den Build-Eigenschaften) ist diejenige, die nicht verfügbar ist
StingyJack
9

Meine Lösung ist dieselbe wie zuvor erwähnt: Löschen -> Vorhandenes Projekt hinzufügen

Aber diese Lösung setzt voraus , dass Referenzen zwischen Projekten weg bekommen

: Um eine erneute Zugabe von Referenzen zu vermeiden und für den Fall , wenn Sie Versionskontrollsystem verwenden wie GIT oder TFS oder was auch immer, es acheve Ziel mit den folgenden Schritten möglich ist:

  1. Stellen Sie sicher, dass alle Änderungen vor dem Vorgang festgeschrieben / eingecheckt werden

  2. Gehen Sie alle Projekte durch, löschen Sie sie aus der Lösung und fügen Sie vorhandene hinzu

  3. Beachten Sie, dass sich die SLN-Datei geändert hat

  4. Behalten Sie die neue SLN-Datei bei, machen Sie jedoch die Änderungen an allen CSPOJ-Dateien mit dem Versionskontrollsystem rückgängig

Andrey K.
quelle
5

Das Visual Studio 2008 kann daran liegen, dass der 64-Bit-Compiler nicht installiert worden wäre.

Systemsteuerung -> Programme und Funktionen -> Microsoft Visual Studio 2008 Professional -> [Doppelklick]

Im Visual Studio-Dialogfeld

Weiter -> Features hinzufügen / entfernen -> (Unter) Visual C ++ -> (Auswahl) x64-Compiler und Tools

Anish AR
quelle
5

Ein Neustart von Visual Studio hat den Trick gemacht

Mohammad Fneish
quelle
3

Hey, habe das gerade behoben. Ich dachte, es könnte helfen. Sie haben höchstwahrscheinlich keine entsprechenden Compiler zusammen mit dem Visual Studio installiert. Dies ist mir heute passiert - standardmäßig installiert das VS 2008-Installationsprogramm keinen x64 C ++ - Compiler.

Wenn Sie über SP1 verfügen, deinstallieren Sie es, bevor Sie die VS-Installation ändern. Wenn Sie fertig sind, installieren Sie SP1 erneut.

Sergey Malgin
quelle
3

Das Problem besteht auch in VS 2010. der vorgeschlagenen Lösungen: Bearbeiten der Build-Konfiguration, Bereinigen, Ändern / erneutes Ändern des Ziel-Frameworks, funktioniert NICHT. Das Projekt wird jedoch entladen und neu geladen.

Mark Alsip
quelle
2

Gehen Sie zum Build-Menü und wählen Sie "Konfigurationsmanager". Dies zeigt, welche Projekte so konfiguriert sind, dass sie in Ihrer ausgewählten Konfiguration erstellt werden.

1800 INFORMATIONEN
quelle
2

Mir war gerade etwas Ähnliches passiert. Ich bin mir nicht sicher , was das Problem war, aber es wäre nicht reinigen , Bau , Umbau , etc. Ich bin in Betrieb Visual Studio 2017 und wollte netstandard2.0Montag. Das Problem für mich war, dass der Projekttyp irgendwie falsch war. Vielleicht habe ich von einer netcoreappKlassenbibliothek aus angefangen , so etwas, die in der Lösungsdatei steckt, an die ich mich nicht erinnere. Wie auch immer, ich habe das Projekt gesichert, ein neues netstandardKlassenbibliotheksprojekt erstellt und die gesicherten Bits berücksichtigt, und das hat es für mich behoben. HTH jemand.

mwpowellhtx
quelle
2

Ich hatte eine seltsame, die es wert sein könnte, unter den anderen Möglichkeiten hier dokumentiert zu werden.

Ich hatte meiner Lösung ein gemeinsames Projekt hinzugefügt , dessen Code in zwei oder drei der anderen Projekte verwendet wurde. Wie Sie wissen, sind freigegebene Projekte nur Code und nicht wirklich ein Projekt im herkömmlichen Sinne. Sie können kein freigegebenes Projekt erstellen, sondern nur Code, der in die anderen Projekte eingebettet und dann dort erstellt wird.

Aber irgendwie wurde meine Lösungsdatei aktualisiert, als ob das gemeinsam genutzte Projekt eine eigene Sache wäre, die erstellt werden müsste. Ich vermute dann, dass jedes Mal, wenn ich versuchte zu erstellen und den Code im freigegebenen Projekt nicht geändert hatte, sich herausstellte, dass sich nichts geändert hat, überspringen Sie diese Builds.

Ich fand das freigegebene Projekt in der solution.slnDatei wie folgt:

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

..was ist in Ordnung. Was nicht in Ordnung ist, ist, dass dieses Projekt auch in der GlobalSection(ProjectConfigurationPlatforms) = postSolutionArt erschien:

    {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

Ich habe diese vier Zeilen aus meiner .slnDatei entfernt, und jetzt scheinen die Dinge wieder glücklich zu sein

PaulG
quelle
Toll! Das war's! Ich habe jede Zeile aus der SLN-Datei entfernt, die mit einer Zeile begann, in der nur "Global" stand, und alle Zeilen bis "EndGlobal" entfernt. Dann hat es wieder geklappt.
Ted
2
  1. Visuelles Studio schließen
  2. Öffnen Sie die SLN-Datei mit dem Editor
  3. Löschen Sie alle folgenden Dinge: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug mit Fälschungen | x86.ActiveCfg = Debuggen mit Fälschungen | x86 (es wird eine Reihe von ihnen geben)

4. Speichern Sie die Datei 5. Öffnen Sie Visual Studio und alles besser

Chris Heinemann
quelle
2
Warum hilft das? Fügen Sie eine Erklärung hinzu und seien Sie so detailliert wie möglich, damit zukünftige Leser verstehen können, warum Sie diese Schritte unternehmen mussten.
2

Ich habe auf 15.9.11 aktualisiert, ... nach einigen Builds das gleiche Problem: Die meisten Projekte werden übersprungen (die vor einer Sekunde ohne Probleme erstellt wurden). Das Entladen / Neuladen der Lösung hilft in meinem Fall immer, aber es wird bald wieder passieren.

Ich habe keine Ahnung warum ... außer einem großen Fehler in VS2017

Ich habe den Konfigurationsmanager überprüft. Alle Häkchen sind auf Build gesetzt.

Vielleicht hat es etwas mit Nuget-Paketen zu tun, aber das ist nur eine Vermutung

Die Lösung hat nur c ++ / vcxproj, kein csproj. 64 und 32 sind beide installiert

Timm
quelle
2

Als erstes müssen Sie diagnostizieren, warum der Build Projekte überspringt. Um eine detaillierte Build-Ausgabe zu erhalten, ändern Sie die Ausführlichkeit an detailedder folgenden Stelle in Visual Studio.

Geben Sie hier die Bildbeschreibung ein

Darren Wood
quelle
6
Die Ausführlichkeitseinstellungen helfen leider nicht. Die Ausgabe sagt immer noch nur "übersprungenes Projekt", ohne zu erklären, warum.
PaulG
1

Hatte das gleiche Problem, fand heraus, dass die Projekteinstellung für Itanium-CPU war, und änderte es in Intel, um es zu beheben.

Sabuncu
quelle
1

Bei VS2005 trat das gleiche Problem auf, alle Konfigurationen waren korrekt. Es wurde sogar der Befehl Projekt reinigen übersprungen.

Endlich hat das Entladen / Nachladen die Magie gemacht.

Prakash
quelle
1

Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf Lösung, und klicken Sie dann unten im Menü auf Eigenschaft. Klicken Sie in den Eigenschaftsfenstern im linken Bereich auf Konfigurationseigenschaften -> Konfiguration. Im rechten Bereich wird die Liste der Projekte angezeigt. Stellen Sie sicher, dass das Kontrollkästchen Erstellen im Popup-Fenster aktiviert ist.

TonyXu
quelle
1

Wenn Ihre Lösung eine NuGet-Projektdatei (* .nuproj) enthält, versuchen Sie, diese zu entladen und anschließend Ihre Lösung neu zu erstellen.

Dies funktionierte für mich, nachdem keines der oben genannten Verfahren funktioniert hatte.

FrequentGuest
quelle
0

Ich finde, dass manchmal, wenn Sie eine Zielplattform eingestellt haben, beispielsweise x86 in Ihrer Lösung und in Ihren Projekten, das Projekt sie nicht immer ausgewählt hat.

Um dies zu überprüfen, gehen Sie zu den Projekteigenschaften und prüfen Sie, ob Sie diese Plattform in der Einstellung Build-> Platform auswählen können. Wenn Sie dies nicht können, müssen Sie zum Konfigurationsmanager gehen und diese Konfiguration erstellen.

TriStar
quelle
0

Ich hatte dieses Problem mit einigen Windows CE-Projekten auf einem neuen PC. "Projekt entladen" und "Projekt neu laden" schienen das Problem zu beheben, aber tatsächlich hatte Visual Studio einfach auf eine andere Plattform gewechselt und diese erstellt.

Es stellte sich heraus, dass meine WinCE-Plattform zwar als aktive Plattform angezeigt wurde, Visual Studio sie jedoch nicht "wirklich" sah. Die Lösung bestand darin, das WinCE SDK mit Administratorrechten neu zu installieren :

  • Stellen Sie sicher, dass Visual Studio 2008 nicht ausgeführt wird.
  • Öffnen Sie als Administrator eine "Visual Studio 2008-Eingabeaufforderung". Klicken Sie unter Windows 7 einfach mit der rechten Maustaste auf die Verknüpfung und wählen Sie die Option "Als Administrator ausführen".
  • Geben Sie den folgenden Befehl ein: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Wenn Sie gefragt werden, ob Sie eine benutzerdefinierte oder vollständige Installation durchführen möchten, wählen Sie "Benutzerdefiniert" und weisen Sie das Installationsprogramm an, die Installation der Dokumentation zu unterlassen (dieser Schritt war in meinem Fall nicht erforderlich. Tatsächlich habe ich ihn lediglich gebeten, die vorhandene Installation zu "reparieren". )
  • Installieren
Qwertie
quelle
0

VS 2008 überspringt x64-Ziele, wenn der x64-Compiler nicht installiert ist. VS 2008 ist standardmäßig nicht verfügbar. Irgendwie duh, was.

user2869030
quelle
0

Ich hatte ein sehr ähnliches Problem, nachdem ich ein Projekt aus einem Dekompiler von Telerik generiert und dann versucht hatte, es neu zu kompilieren. Das Projekt wurde übersprungen, wenn ich versuchte, es neu zu erstellen. Ich habe viele der oben genannten Vorschläge ausprobiert, aber für mich war es das in den Projekteigenschaften ausgewählte .NET Framework.

Klicken Sie mit der rechten Maustaste auf das Projekt in der Lösungsdatei, wählen Sie Eigenschaften, Registerkarte Anwendung, und ändern Sie das Zielframework von 4.0 auf 3.5.

Dann neu erstellen, und ich habe eine Reihe von fehlenden Fehlern bei Baugruppenreferenzen erhalten, was sinnvoll ist, da ich ihnen noch keine Referenzen hinzugefügt habe.

Elmer
quelle
0

Ich aktualisiere ein kleines Update von Visual Studio 2017 und dann erinnert mich das Installationsprogramm daran, meinen Computer neu zu starten, aber ich habe nicht neu gestartet. Wenn ich mein Projekt oder meine Lösung in Visual Studio 2017 erstelle, stoße ich auf das gleiche obige Problem. Ich denke, das Update ist möglicherweise den Schlüssel, also starte ich meinen Computer neu, ich habe es getan .:>

Farb
quelle
0

Ich hatte dieses Problem in Visual Studio 2017 15.9.4 und nach einigem Suchen und Einlegen einiger Zeit stellte ich fest, dass in meiner Lösung die .csproj-Datei eines der Projekte nach dem Zusammenführen in TFS beschädigt wurde. (Ich könnte andere Projekte erstellen, indem ich das problematische Projekt aus der Lösung entlade). Als ich mein Problem gelöst habe, habe ich die .csproj-Datei vor und nach dem Zusammenführen verglichen und das behoben. Und mit Fix meine ich, da der Typ meines eigenen Projekts .netStandard war, habe ich unnötige Zeilen entfernt, einschließlich Configuration PropertyGroup , alle und andere in der neuen .csproj-Datei, um sie der vorherigen .netstandard-Version ähnlich zu machen.

VahidShir
quelle
0

Ich hatte ein ähnliches Problem, ich hatte ein Projekt, das aus irgendeinem Grund nicht in den Solution Explorer geladen werden konnte. Als ich das Projekt geladen habe, hat es wie ein Zauber funktioniert.

Gaurav Yeole
quelle
0

Ich bin gerade in diese Schwierigkeiten geraten:

Hatte VS 2017 auf die neueste Version 15.9.11 aktualisiert und einige meiner Projekte wurden auf .net Core 2.2 aktualisiert. Ich habe anfangs alle Projekte geladen, die beim Bauen / Reinigen / Umbauen versucht wurden, und alles wurde übersprungen. Befolgen Sie die folgenden Schritte, um Folgendes zu beheben:

  1. Ich habe jedes Projekt entladen und neu geladen.
  2. Alle Instanzen von VS geschlossen und VS als Administrator geöffnet (Rechtsklick auf die Verknüpfung und Auswahl der Option "Als Administrator ausführen")

Das war alles wieder in Aktion und ich konnte alle Projekte erfolgreich aufbauen.

Chethan
quelle
0

Das visuelle Studio 2017

Nach dem Hinzufügen der Konfiguration im Konfigurationsmanager

Klicken Sie mit der rechten Maustaste auf Projekt -> Nur Projekt -> Nur erstellen / Nur neu erstellen / Nur bereinigen

wenn alle anderen Einstellungen korrekt sind.

mail2subhajit
quelle
0

Problem: Beim erneuten Erstellen, Erstellen und Reinigen wurden alle meine Projekte außer zwei davon übersprungen.

Lösungen, die bei mir nicht funktionierten:

  1. Die Einstellungen für die Lösungskonfiguration waren wie erwartet, sodass keine Änderungen daran hilfreich waren.

  2. Das Entladen und Nachladen hat nicht funktioniert.

Grund des Auftretens:

Dies geschah, weil das .NET-Zielframework für diese beiden Projekte höher (4.7), für die anderen Projekte jedoch niedriger war. Es wurde anfangs eine Eingabeaufforderung angezeigt, in der ich aufgefordert wurde, .NET 4.7 zu installieren, was ich auch tat. Es stellte sich jedoch heraus, dass es nicht erkennen konnte, dass es installiert ist, ohne meinen Computer neu zu starten.

Lösungen, die funktionierten:

  1. Ein Neustart meiner Maschine hat es geschafft. Nach dem Neustart wurde korrekt erkannt, dass .NET 4.7 installiert ist.
  2. Alternativ wurde das Problem auch durch Herabstufen des Zielframeworks des Projekts durch Klicken mit der rechten Maustaste auf das Projekt -> Eigenschaften -> Anwendung -> Zielframework und Festlegen derselben Einstellungen wie bei den anderen übersprungenen Projekten behoben.

Ich würde empfehlen, das neueste .NET Framework zu installieren und den Computer neu zu starten, um weitere Probleme zu vermeiden.

Sonali Agrawal
quelle
0

Builds für Projekte mit abhängigen Projekten, die nicht erstellt werden konnten, werden übersprungen.

mcmillab
quelle