ich die Ausgabe von meinem Teamcity Build-Konfiguration meiner Klassenbibliothek anpassen möchten, so dass die erzeugte DLL-Dateien die folgende Versionsnummer haben: 3.5.0.x, wobei x die Subversion-Revisionsnummer, die TeamCity abgeholt hat.machen Teamcity die Subversion-Build-Nummer in die Montageversion integrieren
Ich habe festgestellt, dass ich die Umgebungsvariable BUILD_NUMBER
verwenden kann, um x zu bekommen, aber leider verstehe ich nicht, was ich sonst noch tun muss.
Die „Tutorials“ Ich finde alle sagen, „du nur auf das Skript hinzufügen“, aber sie sagen nicht die Skript, und „das“ in der Regel bezieht sich auf die Assembly Aufgabe aus der MSBuild Community-Erweiterungen.
Muss ich irgendwie ein benutzerdefiniertes MSBuild-Skript erstellen, um dies zu verwenden? Ist das "Skript" identisch mit der Lösungsdatei oder der C# -Projektdatei?
Ich weiß nicht viel über den MSBuild-Prozess überhaupt, außer dass ich eine Lösungsdatei direkt an MSBuild übergeben kann, aber was ich "das Skript" hinzufügen muss, ist XML, und die Lösungsdatei nicht entschieden sehe aus wie XML.
Also, kann mich jemand zu einem Schritt-für-Schritt-Punkt-Anleitung, wie diese Arbeit zu machen?
Dies ist, was ich am Ende mit:
- die den Boden installierte MSBuild Community Tasks
Bearbeiten, um die Datei CSPROJ meine Kernklassenbibliothek, und so ändern, dass es lautet:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" /> <Target Name="BeforeBuild"> <AssemblyInfo Condition=" '$(BUILD_NUMBER)' != '' " CodeLanguage="CS" OutputFile="$(MSBuildProjectDirectory)\..\GlobalInfo.cs" AssemblyVersion="3.5.0.0" AssemblyFileVersion="$(BUILD_NUMBER)" /> </Target> <Target Name="AfterBuild">
Ändern Sie alle meine AssemblyInfo.cs-Dateien, so dass sie nicht AssemblyVersion oder AssemblyFileVersion angeben (im Rückblick, ich werde in AssemblyVersion setzen zurück)
- Hinzugefügt einen Link zu der jetzt globalen GlobalInfo.cs, die nur befindet außerhalb aller Projekt
- diese Datei Stellen sie sicher, einmal gebaut, so dass ich eine Standarddatei in die Quellcodeverwaltung haben
Dies wird nun GlobalInfo.cs nur dann, wenn die Umgebungsvariable BUILD_NUMBER wird aktualisiert, was es ist wenn ich durch TeamCity baue.
Ich entschied mich für das Halten Assembly konstant, so dass immer noch Referenzen zu arbeiten, und nur Assembly aktualisieren, so dass ich von welcher bauen eine DLL ist zu sehen.
Leider ihre Patcher nicht [derzeit] (http://confluence.jetbrains.net/display/TCD65/AssemblyInfo+Patcher) ermöglichen eine deutliche 'AssemblyVersion' und' AssemblyFileVersion' Werte angeben . – ladenedge
Ihr Vorschlag ist sehr nützlich in Szenarien, in denen es wichtig ist, die Build-Nummer zu verfolgen: Danke! – faester
Mann Ich wollte eine Menge Scheiß-Code machen, nur um das in meinen Code zu bekommen. Du hast mir 2 oder 3 Arbeitstage erspart! –