Ich habe ein automatisiertes Build-System mit CruiseControl. Ich benutze den SvnRevisionLabeller um den Versions-String zu benutzen. Mit dieser Zeichenfolge kann ich nant verwenden, um AssemblyInfo.cs zu aktualisieren. Wenn ich es erstelle, hat es die korrekte Build-Zeichenfolge. Ich kann dieses CC-Label auch verwenden, um das Subversion-Repository zu markieren.Sollte AssemblyInfo.cs in der Versionskontrolle platziert werden?
so ausgerichtet, alles ist
- CCNet Build-Label
- Executable (Montagehinweise)
- Version Control (subverson tag)
Jetzt, wo ich ein Problem habe, ist, wenn ich versuchen will eine neu zu erstellen altes Bild aus dem Repository. Da AssemblyInfo.cs nicht der Versionskontrolle unterliegt, sondern eine generierte Datei, wenn ich nun versuche zu bauen, werden die Versionsinformationen nicht mit denen übereinstimmen, die bei der Erstellung dieser Version des Repositorys mit CruiseControl verwendet wurden. Ich möchte in der Lage sein, genau das gleiche Bild zu erzeugen, unabhängig davon, ob es während des Builds von CC oder zu einem späteren Zeitpunkt beim Auschecken aus Subversion erstellt wurde.
Ich weiß, dass es oft nicht empfohlen wird, aber sollte ich die assemblyInfo.cs-Datei nach jedem Build einchecken, damit wenn ich später von einem Svn-Check-Out Build die richtige Versionsinformation verwendet wird?
Danke, Liam
Ich benutze Subversion und CrusieControl.NET. Ich baue mit einem NAnt-Skript. Alles, was ich gelesen habe, ist, dass AssemblyInfo.cs eine Ausgabe ist, die während des Buildprozesses generiert wird.So ist die Build-Sequenz ist: - CCNET (SVN-Trigger durch einen Check-in @say Repository-Version 100) NAnt genannt msbuild AssemblyInfo.cs genannt afgter Build erstellt wird Muss ich jetzt-Check-in AssemblyInfo.cs ? Wenn das eingecheckt wäre, wäre das dann Rev. 101. Mein Ziel, AssemblyInfo.cs mit der Build-Revision zu vergleichen, ist also nicht erfüllt. Wie mache ich das? –
Ich glaube, der Grund, warum Sie AssemblyInfo.cs in Ihrem Fall nicht einchecken möchten, ist, dass Ihr CI-System es erzeugt. Bei einem normalen Build einschließlich der Art, wie TFS-Build-Server es tun, wird die AssemblyInfo.cs eingecheckt und nicht für jeden Build generiert. – majinnaibu