Cela devrait être fait comme une étape de pré-construction.
À un certain moment dans le passé, j'ai conçu ce fichier batch pour faire l'affaire pour un projet C++:
@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
L'idée est:
Vous disposez d'un fichier (build_autoinc.conf) dans votre sources. Ce fichier contient la configuration de l'application spécifique (de sorte que le fichier de commandes puisse être réutilisé sans modifications).
build_autoinc.conf
ressemble à ceci:
CPP_BUILD_AUTOINC_CONST=VERSION
CPP_BUILD_AUTOINC_BUILD=1
CPP_BUILD_AUTOINC_FNAME=version.cpp
Ainsi, lorsque le fichier de commandes est exécuté, il crée (écrasements) le fichier version.cpp
avec le contenu:
#define VERSION 1
et incrémente également le numéro de build dans build_autoinc.conf
.
Vous pouvez facilement adapter ceci pour travailler avec un projet C# et définir une étape de préconfiguration pour exécuter le fichier de commandes. Un mot d'avertissement, cependant: puisque version.cpp
(ou votre équivalent) est écrasé avant chaque construction, le système de construction pensera TOUJOURS que puisque les fichiers ont changé, une nouvelle construction doit être faite. Vous ne pouvez donc pas, par exemple, cliquer sur "build" pour vérifier si votre binaire est à jour et ignorer le processus de construction s'il l'est.
Je pense que nous avons besoin de plus d'informations ici, je ne suis pas sûr de ce que vous essayez de faire. – Noldorin
Ne le feriez-vous pas comme vous l'avez posté? – Brad
plus d'informations nécessaires – TalentTuner