Ich möchte meine .exe Zugriff auf eine Ressource-Zeichenfolge mit meiner SVN-Version haben. Ich kann das manuell eingeben, aber ich bevorzuge eine automatisierte Möglichkeit, dies zur Kompilierzeit einzubetten. Gibt es solche Fähigkeiten in Visual Studio 2008?Embedding SVN Revisionsnummer zum Kompilieren in einer Windows-App
Antwort
Ich wollte eine ähnliche Verfügbarkeit und fand $ Rev $ als ungenügend, weil es nur für eine Datei aktualisiert wurde, wenn die Revision dieser Datei geändert wurde (was bedeuten würde, dass sie sehr zeitgerecht editiert und committen müsste tun.) Stattdessen wollte ich etwas, das auf der Revisionsnummer des Repositorys basierte.
Für das Projekt, an dem ich gerade arbeite, habe ich ein Perl-Skript geschrieben, das svnversion -n
aus dem obersten Verzeichnis meiner Arbeitskopie ausführt und die neuesten Revisionsinformationen in eine .h-Datei (ich vergleiche es tatsächlich mit eine gespeicherte Umkehrung in einer nicht versionierten Datei in meiner Arbeitskopie, so dass ich die aktuelle Revisionsinformation nicht bei jedem Kompilieren überschreibe, sondern ob Sie dies tun, liegt bei Ihnen.) Diese .h-Datei (oder eine Anzahl von Dateien, falls notwendig, abhängig von Ihrem Ansatz) wird sowohl in meinem Anwendungscode als auch in den Ressourcendateien referenziert, um die Informationen zu erhalten, die mir gefallen.
Dieses Skript wird als vorbereitender Schritt ausgeführt, sodass alles auf dem neuesten Stand ist, bevor der Build gestartet wird und die entsprechenden Dateien automatisch von Ihrem Build-Tool neu erstellt werden.
Sie können SVN to embed it for you bekommen, wenn das das Problem lösen wird. Sehen Sie sich das $ Rev $ Keyword auf dieser Seite an.
Leider gibt das $ Rev $ Schlüsselwort nur die letzte Revision, dass * die Datei, in der es angezeigt wird * geändert wurde. –
Die Lösung von antik ist die, die wir verwenden. Seien Sie vorsichtig bei der Verwendung von Umgebungsvariablen, die .h-Datei stellt sicher, dass Sie eine Abhängigkeit haben, die dazu führt, dass alle Dateien, die sie benötigen, neu kompiliert werden, wenn sich die SVN-Rev-Nummer ändert.
Guter Punkt: Ich habe vergessen, dass das ein weiterer Vorteil in unserer Umgebung war. – antik
Wie wäre es mit SubWCRev das Befehlszeilenprogramm, das mit TortoiseSVN ausgeliefert wird. Sie erstellen eine Vorlagendatei mit Token wie $ WCREV $ $ WCDATE $ etc. Dann haben Sie einen Pre-Build-Schritt, der SubWCRev in Ihrer Vorlagendatei ausführt, um die eigentliche Quelldatei zu erstellen, die dem Compiler zugeführt wird.
- 1. SVN Revisionsnummer
- 2. SVN-Revisionsnummer und Zeitstempel
- 3. ASP.NET Anzeige SVN Revisionsnummer
- 4. Wie programmgesteuert SVN Revisionsnummer erhalten?
- 5. Wie SVN Revisionsnummer in JAR injizieren?
- 6. Linking Tortoise SVN Revisionsnummer zu Assembly Version
- 7. Welche maximale Revisionsnummer wird von SVN unterstützt?
- 8. mit svn, überprüfe die Revisionsnummer, wenn offline
- 9. SVN zu HG: Jetzt Ausgabe SVN Revisionsnummer von HG changeset
- 10. Jenkins Dynamischer Parameter: SVN-Revisionsnummer als Standardwert
- 11. Einfache Möglichkeit, Svn Revisionsnummer in PHP Seite einzubetten?
- 12. Wie kann ich die SVN-Revisionsnummer in git log?
- 13. Wie ermitteln Sie die letzte SVN-Revisionsnummer in einem Verzeichnis?
- 14. Aktuelle Revisionsnummer in Subclipse?
- 15. Batch-Datei, die auf Benutzereingabe Revisionsnummer mit Tortoise Svn aktualisiert
- 16. mit Bash Revisionsnummer von Subversion
- 17. Wie setze ich eine Revisionsnummer für svn external?
- 18. Befehl zum Abrufen der SVN-Diff der aktuellen und der vorherigen Revisionsnummer
- 19. Programmgesteuertes Aktualisieren von FILEVERSION in einer MFC-App mit SVN-Revisionsnummer
- 20. Embedding Versionskontrolle in App
- 21. Wo zum Speichern einer VisualSvn-Verzweigung oder Stamm zu kompilieren
- 22. Revisionsnummer eines Remote-Repositorys abrufen
- 23. Embedding Dart in Anwendung
- 24. Embedding pygal in web2py
- 25. Kann ich die Revisionsnummer eines Commits kennen?
- 26. Embedding Auswertungen in Perl Regex
- 27. Hilfe zum SVN-Setup
- 28. Embedding Bootstrap Klasse Eigenschaften in einer anderen Klasse
- 29. Embedding require.js in optimiertes Skript
- 30. Embedding Powerpoint-Diagramm in Excel
TortoiseSVN hat ein kleines Hilfsdienstprogramm namens SubWCRev.exe, das die höchste festgeschriebene Revisionsnummer einer Arbeitskopie findet. – dummy
Gut zu wissen! Mein Team benutzt TortoiseSVN sehr, daher wäre es wahrscheinlich gut gewesen, wenn ich die Skripte geschrieben hätte. Ich könnte in SubWCRev.exe irgendwann schauen - es wäre schön, die Abhängigkeit von der normalen Subversion-Distribution zu löschen ... – antik
Ein Tipp für andere, die diese Idee umsetzen: Überlegen Sie, ob Ihr Skript eine neue Version nur dann ausschreiben soll, wenn Änderungen tatsächlich vorliegen wurde vor Ort gemacht; d.h. nur dann, wenn der von "svnversion" ausgegebene Wert ein "M" unter dem endgültigen Satz von Zeichen enthält. Dadurch können Sie Ihr Projekt nach einem Commit neu erstellen, ohne dass sich die Versionsnummer ändert. (Für eine Beschreibung des Formats seiner Ausgabe siehe [die 'svnversion'-Dokumentation] (http://svnbook.red-bean.com/en/1.7/svn.ref.svnversion.re.html).) –