Delphide yazdığım uygulamalarda otomatik olarak her derlediğimde versiyonun artmasını istiyorum. Her defasında manual yapıyorum. otomatikleştirme yolu var mıdır ? ayarlarını yaptım options menüsünden ama artmıyor.
Ben bu yöntem ile okuyabiliyordum. Ama antivirüs programları UAC kontrolü vs. yüzünden artmaz oldu belki sende çalışır.
function Sto_GetFmtFileVersion(const FileName: String = '';
const Fmt: String = '%d.%d.%d.%d'): String;
var
sFileName: String;
iBufferSize: DWORD;
iDummy: DWORD;
pBuffer: Pointer;
pFileInfo: Pointer;
iVer: array [1 .. 4] of Word;
begin
// set default value
Result := '';
// get filename of exe/dll if no filename is specified
sFileName := FileName;
if (sFileName = '') then
begin
// prepare buffer for path and terminating #0
SetLength(sFileName, MAX_PATH + 1);
SetLength(sFileName, GetModuleFileName(hInstance, PChar(sFileName),
MAX_PATH + 1));
end;
// get size of version info (0 if no version info exists)
iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);
if (iBufferSize > 0) then
begin
GetMem(pBuffer, iBufferSize);
try
// get fixed file info (language independent)
GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);
VerQueryValue(pBuffer, '\', pFileInfo, iDummy);
// read version blocks
iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);
iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);
iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);
iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);
finally
FreeMem(pBuffer);
end;
// format result string
Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);
end;
end;
Geliştirdiğim uygulamanın versiyonu her derlediğimde artsın dedim. yada siz doğru birşey yazdınız ben anlayamadım :D
(http://s7.postimg.cc/sofa9zcvv/version.jpg)
bunu yapmama rağmen artmaması normal mi ?
boş bir proje yapıp onun üzerinde deneyelim. belki sizin delphi bozuktur
mesaj birleştirme:: 28 Ocak 2016, 19:13:40
Boş proje üzerinde denedim. gerçekten çalışmadı. fakat eskiden çalışyordu diye hatırlıyorum. Galiba o sırada XP kullanıyordum.
Belki Windows, 64 bit olduğundan dosya sistemi ntfs olduğundan dolayı windows önbellek sorunu gibi bir sorun nedeniyle güncellenmiyor olabilir.
Şurada bahsedilmiş belki çözümü vardır:
http://indrayn.com/auto-increment-version-information-pre-build-tool-delphi-xe2-verinfo/ (http://indrayn.com/auto-increment-version-information-pre-build-tool-delphi-xe2-verinfo/)