Dies würde als Pre-Build-Schritt getan werden müssen.
An einem gewissen Punkt in der Vergangenheit habe ich diese Batchdatei entwickelt, den Trick für ein C++ Projekt zu tun:
@echo off
SETLOCAL
SET CPP_BUILD_AUTOINC_CONST=
SET CPP_BUILD_AUTOINC_BUILD=
SET CPP_BUILD_AUTOINC_FNAME=
SET CPP_BUILD_AUTOINC_FILE=build_autoinc.conf
IF NOT "%1"=="" SET CPP_BUILD_AUTOINC_FILE=%1
IF NOT EXIST "%CPP_BUILD_AUTOINC_FILE%" GOTO noversionfile
:configfromfile
FOR /F "tokens=1,2 delims== " %%i IN (%CPP_BUILD_AUTOINC_FILE%) DO SET %%i=%%j
if "%CPP_BUILD_AUTOINC_CONST%"=="" goto noconstname
if "%CPP_BUILD_AUTOINC_BUILD%"=="" goto nobuildnum
if "%CPP_BUILD_AUTOINC_FNAME%"=="" goto nofilename
echo Auto-incrementing build number in %CPP_BUILD_AUTOINC_FNAME%...
SET /A CPP_BUILD_AUTOINC_BUILD = %CPP_BUILD_AUTOINC_BUILD% + 1
>%CPP_BUILD_AUTOINC_FILE% echo CPP_BUILD_AUTOINC_CONST=%CPP_BUILD_AUTOINC_CONST%
>>%CPP_BUILD_AUTOINC_FILE% echo CPP_BUILD_AUTOINC_BUILD=%CPP_BUILD_AUTOINC_BUILD%
>>%CPP_BUILD_AUTOINC_FILE% echo CPP_BUILD_AUTOINC_FNAME=%CPP_BUILD_AUTOINC_FNAME%
>%CPP_BUILD_AUTOINC_FNAME% echo #define %CPP_BUILD_AUTOINC_CONST% %CPP_BUILD_AUTOINC_BUILD%
goto end
:noconstname
:nobuildnum
echo CPP_BUILD_AUTOINC : error
exit /b 2
:noversionfile
echo CPP_BUILD_AUTOINC : error: version file %CPP_BUILD_AUTOINC_FILE% does not exist
exit /b 1
:end
exit /b 0
Die Idee ist:
Sie haben eine Datei (build_autoinc.conf) in Ihrem Quellen. Diese Datei enthält die Konfiguration für die spezifische Anwendung (so dass die Batchdatei ohne Änderungen wiederverwendet werden kann).
build_autoinc.conf
sieht wie folgt aus:
#define VERSION 1
und auch erhöht die Build-Nummer in:
CPP_BUILD_AUTOINC_CONST=VERSION
CPP_BUILD_AUTOINC_BUILD=1
CPP_BUILD_AUTOINC_FNAME=version.cpp
Also, wenn die Batch-Datei ausgeführt wird, es (Überschreibungen) die Datei version.cpp
mit dem Inhalt erstellt build_autoinc.conf
.
Sie können dies problemlos anpassen, um mit einem C# -Projekt zu arbeiten, und einen Vorbereitungsschritt zum Ausführen der Stapeldatei festlegen. Ein Wort der Warnung: Da version.cpp
(oder Ihr Gegenstück) vor jedem Build überschrieben wird, wird das Build-System IMMER denken, dass, da sich die Dateien geändert haben, ein neuer Build erstellt werden muss. Sie können also zum Beispiel nicht auf "build" klicken, um nur zu überprüfen, ob Ihre Binärdatei aktuell ist, und den Build-Prozess überspringen, wenn dies der Fall ist.
Ich denke, wir brauchen mehr Informationen hier, ich bin mir nicht sicher, was Sie versuchen zu tun. – Noldorin
Würdest du es nicht genauso machen, wie du es geschrieben hast? – Brad
mehr Infos benötigt – TalentTuner