Nach einer gefühlten Ewigkeit der Suche habe ich nun endlich eine *.bat-Datei schreiben können, die mir bei jedem Compilierungsvorgang in FlashDevelop eine neue Versionsnummer in eine ActionScript-Datei schreibt. Diese kann dann problemlos im restlichen ActionScript-Projekt wie gewohnt verwendet werden, so dass ich nun in jedem compilierten SWF automatisch eine neue Versionsnummer habe.
Der Code der updateVersion.bat ist folgender:
REM Writes the date and time as current version into src/org/buehling/Version.as
@echo off
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%c_%%b_%%a
REM @echo %cdate%
FOR /F "tokens=1,2,3,4,5 delims=/: " %%a in ('time/T') do set CTIME=%%b_%%a
REM @echo %ctime%
SET VERSIONFILE=src\org\buehling\Version.as
SET VERSION=%CDATE%_%CTIME%
del "%VERSIONFILE%"
echo package org.buehling >> %VERSIONFILE%
echo { >> %VERSIONFILE%
echo //CAUTION: >> %VERSIONFILE%
echo //THIS FILE IS CREATED AUTOMATICALLY BY updateVersion.bat AT EACH COMPILATION! >> %VERSIONFILE%
echo //Any changes will be overridden and lost! >> %VERSIONFILE%
echo public class Version { >> %VERSIONFILE%
echo public static const VERSION:String = "%VERSION%"; >> %VERSIONFILE%
echo } >> %VERSIONFILE%
echo } >> %VERSIONFILE%
Die Datei liegt im Wurzelordner des FlashDevelop-Projekts und wurde mit der Zeile $(ProjectDir)\updateVersion.bat in die “Pre-Build Command Line” Tools der Projekteigenschaften aufgenommen. Vor jedem Compilieren ruft FD die Datei auf, die wiederum die Datei src/org/buehling/Version.as neu anlegt und darin das aktuelle Datum der Form YYYY_MM_DD_hh_mm in eine String-Variable schreibt.
Listing der Version.as:
package org.buehling
{
//CAUTION:
//THIS FILE IS CREATED AUTOMATICALLY BY updateVersion.bat AT EACH COMPILATION!
//Any changes will be overridden and lost!
public class Version {
public static const VERSION:String = "2009_12_30_25_23";
}
}
In anderen Projektteilen, binde ich den Wert dann ganz normal ein, z.B. in ein Flex-Label: <mx:Label text="{Version.VERSION}" />
Update: In diesem Post schreibe ich über die Erzeugung einer Build-Version-Nummer auf Basis eines echten Zählers mittels hta.
marco
March 28, 2010 at 9:48 am
Gute Idee, das. Danke