Wir verwenden TeamCity für die kontinuierliche Integration und erstellen unsere Releases über die Lösungsdatei (.sln). Ich habe in der Vergangenheit Makefiles für verschiedene Systeme verwendet, aber nie msbuild (was ich gehört habe, ist ein bisschen wie Makefiles + XML-Mashup). Ich habe viele Posts darüber gesehen, wie man msbuild direkt anstelle der Lösungsdateien verwendet, aber ich sehe keine sehr klare Antwort, warum das so ist.
Warum sollten wir uns also die Mühe machen, von Lösungsdateien zu einem MSBuild-Makefile zu migrieren? Wir haben ein paar Releases, die sich durch #define (featurized builds) unterscheiden, aber größtenteils funktioniert alles.
Die größere Sorge ist, dass wir jetzt zwei Systeme warten müssen , wenn wir Projekte / Quellcode hinzufügen.
AKTUALISIEREN:
Können die Leute den Lebenszyklus und das Zusammenspiel der folgenden drei Komponenten beleuchten?
- Die .sln-Datei von Visual Studio
- Die vielen .csproj-Dateien auf Projektebene (von denen ich ein "untergeordnetes" msbuild-Skript verstehe)
- Das benutzerdefinierte msbuild-Skript
Ist es sicher zu sagen, dass .sln und .csproj wie gewohnt in der IDE-GUI von Visual Studio verwendet / verwaltet werden, während das benutzerdefinierte msbuild-Skript handgeschrieben ist und normalerweise das bereits vorhandene individuelle .csproj "wie es ist" verwendet? So kann ich sehen, dass Überlappungen / Duplikate bei der Wartung reduziert werden ...
Ich würde es begrüßen, wenn ich etwas Licht auf die Betriebserfahrung anderer Leute werfen könnte
Because it's reputed to be better practice
woher?
So, why should we bother migrating from solution files to an MSBuild 'makefile'?
Zuerst musst du dir sagen, warum du überhaupt darüber nachdenkst? Reicht die Lösungsdatei nicht aus?