So aktualisieren Sie den Wert in Assemblyinfo.cs dynamisch
Habe ich geschrieben, ein Programm, das ruft den Wert aus dem SVN-repository . Jetzt möchte ich ein update der AssemblyFileversion mit diesem Wert.
So, ich bin nicht in der Lage zu schreiben code, der in Assemblyinfo.cs , wie kann ich aktualisieren Sie den Wert der AssemblyFileVersion.
Will ich etwas erreichen, wie dies
..........................
//Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
//You can specify all the values or you can default the Build and Revision Numbers
//by using the '*' as shown below:
//[assembly: AssemblyVersion("1.0.*")]
SvnInfoEventArgs info;
Uri repoURI = new Uri("ServerAddress");
svnClient.GetInfo(repoURI, out info);
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion(String.Format("{0}.{1}.{2}. {3}",
major,minor,build,info.Revision))]
svnversion (svnbook.red-bean.com/en/1.7/svn.ref.svnversion.re.html) ist das empfohlene Werkzeug, um eine Versionsnummer aus, ein Arbeitsverzeichnis.
InformationsquelleAutor Simsons | 2013-01-10
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich gehe davon aus, dass Sie zu erzeugen versuchen einige build-system hier - also im Grunde genommen, müssen Sie zum ändern AssemblyInfo.cs-Datei mit svn-Nummer.
Können Sie erstellen MS Build-Aufgabe für die gleichen: siehe http://florent.clairambault.fr/insert-svn-version-and-build-number-in-your-c-assemblyinfo-file
Gibt es Befehlszeilen-Dienstprogramm (SubWCRev) , können auch verwendet werden, für die keyword-basierten Ersatz ($WCREV$ für die revision) - siehe Beispiel hier: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev-example.html
Schließlich können Sie wahrscheinlich roll-out Ihres benutzerdefinierten code (regex suchen/ersetzen), das gleiche zu tun, die einige (mich eingeschlossen) hat sich erledigt - siehe ein Beispiel hier: http://www.codeproject.com/Articles/168528/Automatically-keep-Assembly-revisions-in-sync-with.
prüfen Sie, ob Sie
svn.exe
im bin-Ordner. Wenn ich mich richtig erinnere, während der Installation von Tortoise SVN, wählen Sie den Befehlszeilen-client-tools für die installation (führen Sie den installer erneut, um Sie zu bekommen). Oder sonst können Sie immer herunterladen svn-Kommandozeilen-client.Dank Vinay, Das problem ist, ich war auf dem das Skript läuft auf afolder nicht checkedout aus dem SVN. Kommentieren, so dass jede Landung auf dieser Seite sollten nicht sein verwirrt mit meine vorherigen Kommentare
Zu klären Simsons Kommentar, wir hatten das gleiche problem, da unsere Teamcity so konfiguriert wurde, dass nur Kasse den code (es war eigentlich nicht im SVN verwalteten Ordner) und somit diese Lösung nicht funktioniert. Ohne Ordner verwaltet von SVN, die Befehl-Linie svn-executables (wir haben die Schildkröte) ist fehlgeschlagen. Wir hatten um die Konfiguration zu ändern, um es Auschecken und halten Sie es geschafft SVN-Ordner auf dem build-agent Maschinen. Damit die Lösung der 1.0.-1 Problem.
InformationsquelleAutor VinayC
Ich bin mit einem ant basierte build-system, und hatte eine ähnliche Frage über die Aktualisierung AssemblyInfo.cs.
Mein build-system bereits erzeugt version.h Dateien enthalten sind, in andere Projekte zu erstellen. Für C# habe ich beschlossen, die generiert VersionInfo.cs für die version info-Injektion in AssemblyInfo.cs.
AssemblyInfo.cs (setup einmal die Angabe der VersionInfo-Konstanten)
VersionInfo.cs (dynamisch generiert, indem die ant-build-system)
version.xml (Ameise importieren - Schnitt)
version.Eigenschaften (ant-properties-Datei angeben Produkt-version info)
C# pre-build-Ereignis (Kopien automatisch generierte VersionInfo.cs Projekt-Eigenschaften-Verzeichnis)
MSBuild-Erweiterungen (keine!)
BTW, meine version Schema: major.Moll.revision.bauen, das ist nicht, was die AssemblyInfo.cs-Datei gibt.
InformationsquelleAutor bvj
Müssen Sie dies tun, während Sie Ihren build-Prozess.
Da bist du mit Visual Studio, die Sie bereits verwenden,MSBuild, in welchem Fall die MSBuild Extension Pack hat eine AssemblyInfo Aufgabe.
Für die revision von Subversion, das MSBuild Extension Pack hat eine Aufgabe, die als gut.
Alternativ, wenn Sie mit TeamCity für continuous integration (CI), es hat eine "AssemblyInfo patcher" build-Funktion. Ich denke, dass die meisten anderen CI-Systeme haben etwas ähnliches.
InformationsquelleAutor Roger Lipscombe