2016-09-13 5 views
1

Ich bin neu in einem Projekt und das Gebäude ist ziemlich langsam. Jetzt sehe ich als ein Ereignis postbuild die nächste Aktion für viele Projekte:Warum sollten Sie den 'obj' Ordner bei jedem Build löschen?

<PostBuildEvent>rd "$(ProjectDir)obj" /S /Q</PostBuildEvent> 

ich gelesen habe, dass der obj Ordner verfolgt die Builds so inkrementale Builds schneller sein kann, so dass ich dachte, vielleicht hat dies etwas damit zu tun haben.

Allerdings weiß niemand in meinem Team, warum dies getan wird, die Entfernung dieses Ordners, also bin ich ein wenig zögerlich, nur um die Build-Aktion zu entfernen.

Was kann ein Grund sein, diese Aktion durchzuführen?

+0

Was halten Sie von Christians Antwort? Hast du jetzt Fragen? –

+0

@starain Sieht gut aus, aber ich habe auf einige "echte" Dinge gehofft, die von der Aktion profitieren könnten, so dass ich eine Entscheidung treffen konnte, ob 'echtes' Ding gebraucht wurde oder nicht. – Michel

+0

Ich denke, der Grund für das Löschen von obj-Ordnern ist, dass Sie inkrementelle Builds nicht "aktivieren" möchten, um sicherzustellen, dass alle Dateien die neuesten sind. –

Antwort

2

Ein paar Dinge in den Sinn kommen (alle eher fraglich selbst):

  • Benutzerdefinierte Schritte in der gleichen bauen, oder - Gott bewahre - andere Projekt, das es erfordert (für die nächsten Build erfolgreich zu sein) .
  • Ein (fehlgeleitet) Versuch, Speicherplatz zu erhalten (da alle "kostbaren" in "bin" nach dem Build ist, benötigen Sie technisch nicht "obj").
  • A (irrige) Versuch zu implementieren „sauber, clobber, etc.“ - Semantik

Eine weitere Informationen über das komplette Build-System, andere Projekte benötigt, usw. Sie an der richtigen Stelle um mehr zu erfahren oder bessere Gründe - wenn überhaupt ;-)

1

Der einzige mögliche Grund für eine solche Aktion ist Mangel an Wissen über die Leistung von MSBuild Dienstprogramm.

Ich glaube, dass Zielanforderung (wenn es existiert) könnte auf andere Weise erreicht werden, die inkrementelle Build-Feature nicht weglassen wird.

Versuchen Sie, den Autor dieser Zeichenfolge in VCS zu finden, die Sie verwenden, und wenn der Autor nicht verfügbar ist oder die Frage nicht beantworten konnte, warnen Sie Ihre Kollegen und entfernen Sie sie und sehen Sie, was passiert.

0

Es gibt einen Fehler in Visual Studio. Wenn Sie das obj-Verzeichnis mit dem in der Projektdatei definierten IntermediateOutputPath verschieben, erstellt der Compiler immer noch ein leeres obj-Verzeichnis. Ich mache beides, aber mit VS2010. Wenn VS2015 dies behoben hat, können Sie es möglicherweise entfernen.

Verwandte Themen