Benutzerdefinierte gemeinsames Ziel um eine Lösung zu erstellen
Erstellte ich eine benutzerdefinierte gemeinsame Ziel "RealClean", die entfernen Sie alle Dateien, die in der Ausgabe und "intermediate output" - Verzeichnis. Ich habe es in den Microsoft.Common.targets-Datei.
Wenn ich MsBuild auf meine csproj alles in Ordnung ist.
Aber wenn ich MsBuild auf meinem sln (die nur auf eine Liste csproj) habe ich die folgenden Fehler
error MSB4057: The target "RealClean" does not exist in the project.
Hier ist die Befehlszeile, die ich eingeben zum ausführen von MsBuild
C:\Windows\Microsoft .NET\Framework\v3.5\MsBuild.exe /p:Configuration="Release";OutputPath="..\..\MSBuild.Referentiel.net35";nowarn="1591,1573" /t:RealClean mySolution.sln
Irgendeinen Hinweis?
InformationsquelleAutor Benjamin Baumann | 2010-08-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arbeiten auf Lösung Datei MSBuild erstellt eine temporäre MSBuild-Projektdatei, die nur einige Ziele, wie Bauen und Sauber. So können Sie nicht rufen Sie Ihr custom-Ziel auf eine Lösung Datei.
Gilt das nicht für alle Visual Studio Baut, richtig?
InformationsquelleAutor Julien Hoarau
Ich hatte das gleiche Problem, aber er wollte nicht, Dinge zu ändern, die außerhalb des source-trees, um sich dieser zu arbeiten. Hinzufügen von Dateien zu C:\Program Dateien... bedeutet, dass Sie müssen manuell auf jedem dev-Maschine bekommen, das gleiche Verhalten.
Habe ich drei Dinge:
1) Erstellt eine Benutzerdefinierte Ziele-Datei, die ich importieren in jeden C# und/oder VB/F# - Projekt in meiner Lösung durch hinzufügen des folgenden in die einzelnen proj Datei:
2) Hinzugefügt ein Ziel clean, das aufgerufen wird, nachdem die echt Sauber (mit dem AfterTargets Attribut von MSBuild 4.0):
3) In meinen continuous integration MSBuild-Projekt, das ich überprüfen und stellen Sie sicher, dass alle proj-Dateien #1:
Dies verhindert, dass Entwickler aus dem vergessen, fügen Sie #1. Könnte man erstellen Sie Ihre eigene Projekt-Vorlage, um sicherzustellen, dass al neue Projekte haben dies standardmäßig.
Der Vorteil an diesem Ansatz ist die Einrichtung eines neuen source-tree Eintragung nicht um etwas mehr als die current-source-tree. Der Nachteil ist, dass Sie zum Bearbeiten des Projekt-Dateien, wenn Sie Sie erstellen.
Danke. Wenn überhaupt, die
AfterTargets
Eigenschaft setzen, mir den richtigen WegEs ist schon 7 Jahre her, dass diese Antwort gepostet wurde. Obwohl es gut ist, Frage ich mich, ob es jetzt einer weniger ausführlichen Art und Weise, dies zu tun?
Es könnte sein, aber ich glaube nicht wirklich das uns die VS in diesen Tagen. AFAIK das Projekt system hat sich nicht wesentlich verändert.
InformationsquelleAutor Ade Miller
Madgnome ist wohl richtig. Aber ich wollte noch hinzufügen, dass Sie sollten nicht die Bearbeitung der von Microsoft.common.Ziele-Dateien. Wenn Sie dies tun, riskieren Sie eine andere build-Prozess auf, dass die Maschine gegenüber dem, was sonst jeder hat. In Ihrem Fall könnten Sie haben eine neue MSBuild-Datei mit nur den RealClean Ziel und platziert es auf
C:\Program Files (x86)\MSBuild\v4.0\Custom.Nach.Microsoft.Common.Ziele
oder für 32 bit
C:\Program Files\MSBuild\v4.0\Custom.Nach.Microsoft.Common.Ziele
und im wesentlichen das wäre das gleiche wie putting, dass die Datei, die innerhalb von Microsoft.Common.Ziele, außer dass Sie nicht haben, um diese Datei ändern.
jede Art und Weise zu tun, diese änderung bei der Lösung-Ebene anstatt von der Maschine?
InformationsquelleAutor Sayed Ibrahim Hashimi