2010-11-28 17 views
5

Ich habe viele C# -Projekte (Visual Studio 2008) und einige von ihnen aktualisieren die Assembly, auch wenn es keine Änderungen gegeben hat (selbst wenn ich Build und nicht Rebuild gewählt habe). Die meisten meiner Projekte tun das nicht, es sind nur die wenigen.Warum werden meine Projekte erstellt, wenn keine Änderungen vorgenommen werden?

Ich habe noch keinen Unterschied zwischen den Projekten gefunden und fragte mich, ob jemand Ideen hatte, was ihn beeinflussen könnte. Um es klar zu sagen, ich habe vor dem Erstellen keine Codeänderungen vorgenommen, aber die Assembly wird immer noch neu erstellt, wenn ich den Build-Befehl in Visual Studio ausführe.

Es tut mir leid, dass ich keine weiteren Details angeben kann, aber bitte lassen Sie mich wissen, wenn es noch etwas gibt, das ich überprüfen kann, das etwas Licht werfen könnte.

Kann jemand helfen? Ich habe mir schon eine Weile die Haare ausgerissen.

Danke, Alan

Antwort

1

Ich kam nicht auf den Grund und rekonstruierte eines der Projekte. Es stellte sich heraus, dass alles aus diesem einen Projekt stammte, das immer wieder neu aufgebaut wurde.

Ich denke, es hatte etwas mit den eingebetteten Ressourcen zu tun, die jedes Mal neu erstellt werden.

Entschuldigung, ich habe keine definitive Antwort zu diesem Thema. Danke auch an RobV für die nützlichen Informationen.

Alan

+0

Ich akzeptiere immer die Antwort, die mich in die richtige Richtung wies, auch wenn es keine 100% genaue Antwort ist. Dann bearbeite ich meine Frage, um Informationen einzubeziehen, die ich selbst entdeckt habe (mit Hilfe der Antwort) – jgauffin

+0

OK, ich werde das in Zukunft berücksichtigen. Ich habe gerade gemerkt, dass ich diesen hängen gelassen habe und wollte die Schleife schließen, bevor ich es wieder vergessen habe ... –

+0

Danke! Das half mir .... fünf Jahre später :) – Frode

4

Es gibt etwas, Projektabhängigkeiten genannt.

Wenn eines Ihrer Projekte von einem oder mehreren anderen Projekten abhängt und Sie es erstellen, werden auch die anderen Projekte, von denen Ihre Projekte abhängen, erstellt (falls erforderlich). Wenn sich die Abhängigkeiten geändert haben, werden die von ihnen abhängigen Projekte immer neu erstellt.

Sie können mit der rechten Maustaste auf Solution klicken und Project Build Order auswählen, um ein Fenster zu öffnen, in dem die Reihenfolge, in der Projekte erstellt werden, und die Abhängigkeiten für jedes Projekt erläutert werden.

+1

Auch wenn sie seit ihrem letzten Build nicht geändert haben? –

+0

ja! Sie können ändern, ob sie im Konfigurationsmanager erstellt werden oder nicht. –

7

Eigentlich Hans' jetzt gelöschte Antwort wies mich auf die richtige Richtung. Die Ausführlichkeit von MSBuild an Diagnose Diagnose erzählte mir, dass VS ein Projekt immer veraltet betrachtet, da eine Datei "Copy to output directory" auf "Copy always" gesetzt hatte. Und die anderen Projekte folgten daraus, weil sie von diesem Projekt abhängig waren und bemerkten, dass die neu erstellte DLL neuer als eine ihrer eigenen Ausgabedateien war.

Das Ändern von "Kopieren in Ausgabeverzeichnis" zu "Kopieren, wenn neuer" löste das Problem.

+0

Das war das genaue Problem, das ich in meiner Lösung sah - ein Projekt hatte eine Konfigurationsdatei, die auf "immer kopieren" eingestellt war, was dazu führte, dass jedes abhängige Projekt neu erstellt wurde jedes Mal! – benjymous

Verwandte Themen