Delphi 7 Pro to Delphi XE2 - VersionInfo

Hi All

I'm porting a project from Delphi 7 Pro to Delphi XE2 and have notice the VersionInfo "Release" and "Build" not being extracted correctly.
Should be "1.2.3.4"
but is getting "1.2.6150.4567"

I'm using the following to extract the VersionInfo and works ok in Delphi 7 but doesnt get the "Release" and "Build" info when used in Delphi XE2.


function GetVersion : string;
{ ---------------------------------------------------------
   Extracts the FileVersion element of the VERSIONINFO
   structure that Delphi maintains as part of a project's
   options.

   Results are returned as a standard string.  Failure
   is reported as "".

   Note that this implementation was derived from similar
   code used by Delphi to validate ComCtl32.dll.  For
   details, see COMCTRLS.PAS, line 3541.
  -------------------------------------------------------- }
const
   NOVIDATA = '';

var
  dwInfoSize,           // Size of VERSIONINFO structure
  dwVerSize,            // Size of Version Info Data
  dwWnd: DWORD;         // Handle for the size call.
  FI: PVSFixedFileInfo; // Delphi structure; see WINDOWS.PAS
  ptrVerBuf: Pointer;   // pointer to a version buffer
  strFileName,          // Name of the file to check
  strVersion : string;  // Holds parsed version number
begin

   strFileName := paramStr( 0 );
   dwInfoSize :=
      getFileVersionInfoSize( pChar( strFileName ), dwWnd);

   if ( dwInfoSize = 0 ) then
      result := NOVIDATA
   else
   begin

      getMem( ptrVerBuf, dwInfoSize );
      try

         if getFileVersionInfo( pChar( strFileName ),
            dwWnd, dwInfoSize, ptrVerBuf ) then

            if verQueryValue( ptrVerBuf, '\',
                              pointer(FI), dwVerSize ) then

            strVersion :=
               format( '%d.%d.%d.%d',
                       [ hiWord( FI.dwFileVersionMS ),
                         loWord( FI.dwFileVersionMS ),
                         hiWord( FI.dwFileVersionLS ),
                         loWord( FI.dwFileVersionLS ) ] );

      finally
        freeMem( ptrVerBuf );
      end;
    end;
  Result := strVersion;
end;


I've seen a couple of threads on this but all divert of to the fact that the Version isnt automated.

In the Project|Options|Version Info there is a property "FileVersion" which can be changed. 

Can someone post an example of extracting that or show me a work around?


Hope that makes sense.
tia
0
Andrew
2/27/2012 3:01:17 PM
embarcadero.delphi.nativeapi 1236 articles. 1 followers. Follow

7 Replies
1930 Views

Similar Articles

[PageSpeed] 36

"Andrew Pailthorpe" wrote in message news:448785@forums.embarcadero.com...
>
> I've seen a couple of threads on this but all divert of to the fact that 
> the Version isnt automated.
>
> In the Project|Options|Version Info there is a property "FileVersion" 
> which can be changed.


Here's a component I wrote years ago to get all the version info out from 
the current or any specified file containing it. You can just use it in code 
to get the values you want, or even hook up controls to it (any that have a 
caption or text property) and calling Refresh will populate those controls.

unit VersInfo;
{
  Copyright © 1997 WinWright Consulting
  Written by Wayne Niddery

  You may use this code freely in any project, commercial included, as long
  as the this entire comment section, including copyright and credit, 
remains
  intact. You may redistribute this code to others, and/or a compiled 
version
  thereof, as freeware only.
}
{
  Simple interface to version information
    - drop component on form or create in code.
    At Runtime:
      - Set the FileName property to the complete path of the target file
        or pass the name to the OpenFile procedure.
      - If interested in other than US English version info, then set
        the LanguageID property to the correct Language/CharSet value.
        A predefined constant - USEnglish - is the default value and can
        be used to return to the default. Other language constants may be
        added in future.
      - The standard (Windows defined) keys can be retrieved via the
        correspondingly named properties.
      - Non-standard keys can be retrieved via the GetKey function.
      - The standard keys are defined in the VersionInfoKeys constant array,
        these can also be passed to GetKey.
}

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs;

type
  TVersionInfo = class(TComponent)
  private
    FFileName: string;
    FLanguageID: DWord;
    FInfo: pointer;
    FLang: PInteger;
    FLangNum: integer;
    FInfoSize: longint;
    FCtlCompanyName: TControl;
    FCtlFileDescription: TControl;
    FCtlFileVersion: TControl;
    FCtlInternalName: TControl;
    FCtlLegalCopyRight: TControl;
    FCtlOriginalFileName: TControl;
    FCtlProductName: TControl;
    FCtlProductVersion: TControl;
    procedure SetFileName(Value: string);
    procedure SetVerProp(index: integer; value: TControl);
    function GetVerProp(index: integer): TControl;
    function GetIndexKey(index: integer): string;
    procedure Refresh;
  protected
    procedure Notification(AComponent: TComponent; Operation: TOperation); 
override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure OpenFile(FName: string);
    procedure Close;
    function GetKey(const KName: string): string;
    property CompanyName: string index 1 read GetIndexKey;
    property FileDescription: string index 2 read GetIndexKey;
    property FileVersion: string index 3 read GetIndexKey;
    property InternalName: string index 4 read GetIndexKey;
    property LegalCopyRight: string index 5 read GetIndexKey;
    property OriginalFileName: string index 6 read GetIndexKey;
    property ProductName: string index 7 read GetIndexKey;
    property ProductVersion: string index 8 read GetIndexKey;
    property LanguageID: DWord read FLanguageID write FLanguageID;
    property FileName: string read FFileName write SetFileName;
  published
    property CtlCompanyName: TControl index 1 read GetVerProp write 
SetVerProp;
    property CtlFileDescription: TControl  index 2 read GetVerProp write 
SetVerProp;
    property CtlFileVersion: TControl  index 3 read GetVerProp write 
SetVerProp;
    property CtlInternalName: TControl  index 4 read GetVerProp write 
SetVerProp;
    property CtlLegalCopyRight: TControl  index 5 read GetVerProp write 
SetVerProp;
    property CtlOriginalFileName: TControl  index 6 read GetVerProp write 
SetVerProp;
    property CtlProductName: TControl  index 7 read GetVerProp write 
SetVerProp;
    property CtlProductVersion: TControl  index 8 read GetVerProp write 
SetVerProp;
  end;

const
  VersionInfoKeys: array [1..8] of string = (
    'CompanyName', 'FileDescription', 'FileVersion', 'InternalName',
    'LegalCopyRight', 'OriginalFileName', 'ProductName', 'ProductVersion'
    );

  USEnglish = $040904E4;

procedure Register;

implementation

uses TypInfo;

procedure Register;
begin
  RegisterComponents('WinWright', [TVersionInfo]);
end;

constructor TVersionInfo.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FLanguageID := USEnglish;
//  SetFileName(EmptyStr);
  FFileName := EmptyStr;
  OpenFile(FFileName);
end;

destructor TVersionInfo.Destroy;
begin
  if FInfoSize > 0 then
    FreeMem(FInfo, FInfoSize);
  inherited Destroy;
end;

procedure TVersionInfo.SetFileName(Value: string);
begin
  FFileName := Value;
  if Value = EmptyStr then // default to self
    FFileName := Application.ExeName;
  if csDesigning in ComponentState then begin
    Refresh
  end else
    OpenFile(Value);
end;

procedure TVersionInfo.OpenFile(FName: string);
var
  vlen: DWord;
begin
  if FInfoSize > 0 then
    FreeMem(FInfo, FInfoSize);
  if Length(FName) <= 0 then FName := Application.ExeName;
  FInfoSize := GetFileVersionInfoSize(pchar(fname), vlen);
  if FInfoSize > 0 then begin
    GetMem(FInfo, FInfoSize);
    if not GetFileVersionInfo(pchar(fname), vlen, FInfoSize, FInfo) then
      raise Exception.Create('Cannot retrieve Version Information for ' + 
fname);
    // get languages
    VerQueryValue(FInfo, '\VarFileInfo\Translation', pointer(FLang), vlen);
    FLangNum := vlen div 4;
    Refresh;
  end;
end;

procedure TVersionInfo.Close;
begin
  if FInfoSize > 0 then
    FreeMem(FInfo, FInfoSize);
  FInfoSize := 0;
  FFileName := EmptyStr;
end;

const
  vqvFmt = '\StringFileInfo\%4.4x%4.4x\%s';

function TVersionInfo.GetKey(const KName: string): string;
var
  vptr: pchar;
  vlen: DWord;
begin
  Result := EmptyStr;
  if FInfoSize <= 0 then exit;
  if VerQueryValue(FInfo, pchar(Format(vqvFmt, [LoWord(FLang^), 
HiWord(FLang^), KName])), pointer

(vptr), vlen) then
    Result := vptr;
end;

function TVersionInfo.GetIndexKey(index: integer): string;
begin
  Result := GetKey(VersionInfoKeys[index]);
end;

function TVersionInfo.GetVerProp(index: integer): TControl;
begin
  case index of
    1: Result := FCtlCompanyName;
    2: Result := FCtlFileDescription;
    3: Result := FCtlFileVersion;
    4: Result := FCtlInternalName;
    5: Result := FCtlLegalCopyRight;
    6: Result := FCtlOriginalFileName;
    7: Result := FCtlProductName;
    8: Result := FCtlProductVersion;
    else Result := nil;
  end;
end;

procedure TVersionInfo.SetVerProp(index: integer; value: TControl);
begin
  case index of
    1: FCtlCompanyName := Value;
    2: FCtlFileDescription := Value;
    3: FCtlFileVersion := Value;
    4: FCtlInternalName := Value;
    5: FCtlLegalCopyRight := Value;
    6: FCtlOriginalFileName := Value;
    7: FCtlProductName := Value;
    8: FCtlProductVersion := Value;
  end;
  Refresh;
end;

procedure TVersionInfo.Notification(AComponent: TComponent; Operation: 
TOperation);
begin
  if Operation = opRemove then begin
    if AComponent = FCtlCompanyName then FCtlCompanyName := nil
    else if AComponent = FCtlFileDescription then FCtlFileDescription := nil
    else if AComponent = FCtlFileVersion then FCtlFileVersion := nil
    else if AComponent = FCtlInternalName then FCtlInternalName := nil
    else if AComponent = FCtlLegalCopyRight then FCtlLegalCopyRight := nil
    else if AComponent = FCtlOriginalFileName then FCtlOriginalFileName := 
nil
    else if AComponent = FCtlProductName then FCtlProductName := nil
    else if AComponent = FCtlProductVersion then FCtlProductVersion := nil;
  end;
end;

procedure TVersionInfo.Refresh;
var PropInfo: PPropInfo;

  procedure AssignText(Actl: TComponent; txt: string);
  begin
    if Assigned(ACtl) then begin
      PropInfo := GetPropInfo(ACtl.ClassInfo, 'Caption');
      if PropInfo <> nil then
        SetStrProp(ACtl, PropInfo, txt)
      else begin
        PropInfo := GetPropInfo(ACtl.ClassInfo, 'Text');
        if PropInfo <> nil then
          SetStrProp(ACtl, PropInfo, txt)
      end;
    end;
  end;

begin
  if csDesigning in ComponentState then begin
    AssignText(FCtlCompanyName, VersionInfoKeys[1]);
    AssignText(FCtlFileDescription, VersionInfoKeys[2]);
    AssignText(FCtlFileVersion, VersionInfoKeys[3]);
    AssignText(FCtlInternalName, VersionInfoKeys[4]);
    AssignText(FCtlLegalCopyRight, VersionInfoKeys[5]);
    AssignText(FCtlOriginalFileName, VersionInfoKeys[6]);
    AssignText(FCtlProductName, VersionInfoKeys[7]);
    AssignText(FCtlProductVersion, VersionInfoKeys[8]);
  end else begin
    AssignText(FCtlCompanyName, CompanyName);
    AssignText(FCtlFileDescription, FileDescription);
    AssignText(FCtlFileVersion, FileVersion);
    AssignText(FCtlInternalName, InternalName);
    AssignText(FCtlLegalCopyRight, LegalCopyRight);
    AssignText(FCtlOriginalFileName, OriginalFileName);
    AssignText(FCtlProductName, ProductName);
    AssignText(FCtlProductVersion, ProductVersion);
  end;
end;

end.



-- 
Wayne Niddery (TeamB)
"'Thank you, Occupy Wall Street. With your vivid example of anticapitalist 
squalor, I've been able to convince all three of my children to become 
investment bankers"  - P. J. O’Rourke
0
Wayne
2/27/2012 5:07:16 PM
Andrew Pailthorpe wrote:
> Hi All
> 
> I'm porting a project from Delphi 7 Pro to Delphi XE2 and have notice the VersionInfo "Release" and "Build" not being extracted correctly.
> Should be "1.2.3.4"
> but is getting "1.2.6150.4567"

Auto Increment build number was changed in XE2.  The release is based on the 
date (number of days since Jan 1 2000) and build is on the time (ms since 00:00 
div 2) as of XE2.  Update 3 changed a few things on this and I think it might 
have broken the build number (not diving by 2 like it is supposed to and 
therefor wraps before 24 hours is up), but according to Allen Bauer that is what 
those two are supposed to mean.

This falls in line more with how VS does it from what I understand.

-- 
Jeff Overcash (TeamB)
       (Please do not email me directly unless  asked. Thank You)
And so I patrol in the valley of the shadow of the tricolor
I must fear evil. For I am but mortal and mortals can only die.
Asking questions, pleading answers from the nameless
faceless watchers that stalk the carpeted  corridors of Whitehall.
              (Fish)
0
Jeff
2/27/2012 9:33:30 PM
Thanks for all the replies.

If the the release is now based on a Date and the Build is based on a Time then why is it displayed as an Integer in the 

Project|Options|Version Info 

option?

Thanks
0
Andrew
2/29/2012 9:00:46 AM
> {quote:title=Andrew Pailthorpe wrote:}{quote}
> Thanks for all the replies.
> 
> If the the release is now based on a Date and the Build is based on a Time then why is it displayed as an Integer in the 
> 
> Project|Options|Version Info 
> 
> option?

Because it's an integer representation of a date and a time, not a TDateTime. It's based on the date and time your project was built.
0
Ken
2/29/2012 8:39:06 PM
I will call it a bug rather than a feature!

Auto generate build number seems to solve the problem.

But please explain why the company name file description etc. is different for each target?

Rather annoying!

Edited by: Tommy Eldrup on Mar 2, 2012 8:20 PM
0
Tommy
3/3/2012 4:22:37 AM
> {quote:title=Wayne Niddery wrote:}{quote}
> "Andrew Pailthorpe" wrote in message news:448785@forums.embarcadero.com...
> >
> > I've seen a couple of threads on this but all divert of to the fact that 
> > the Version isnt automated.
> >
> > In the Project|Options|Version Info there is a property "FileVersion" 
> > which can be changed.
> 
> 
> Here's a component I wrote years ago to get all the version info out from 
> the current or any specified file containing it. You can just use it in code 
> to get the values you want, or even hook up controls to it (any that have a 
> caption or text property) and calling Refresh will populate those controls.
> 
> unit VersInfo;
> ...


Thanks Wayne

For now I'm going to use the Product Info:-

            strVersion :=
               format( '%d.%d.%d.%d',
                       [ hiWord( FI.dwProductVersionMS ),
                         loWord( FI.dwProductVersionMS ),
                         hiWord( FI.dwProductVersionLS ),
                         loWord( FI.dwProductVersionLS ) ] );
0
Andrew
3/14/2012 10:22:08 AM
Just an update on the Version Info.

In the 

Project|Options|Version Info

if you un-check the "Auto generate build no" you can extract the complete break down of the version, Major version, Minor version, Release and Build as Integers
using the extraction process from my original post.
0
Andrew
3/23/2012 8:07:21 AM
Reply:

Similar Artilces:

Delphi 7 to Delphi XE2
Hi, Still using that old workhorse, Delphi7, but am going to the conference in London hosted by Embarcadero on Delphi XE2. Although I would like to "move with the times" and am keen to get the UNICODE and 64-bit support offered by the latest IDEs, I confess to being more than a little scared about all the UNICODE/String/AnsiString and 32/64 bit issues I'm probably going to fall over. Anyone recently upgraded from Delphi7 to one of the latest Delphi IDEs? Thanks, Alain On 03/02/2012 08:55, Alain Dekker wrote: > Still using that old workhorse, Delphi7, but...

Delphi 2007 to Delphi 7
I've written a class in Delphi 2007 that is not supported in Delphi 7. What would be the best way to achive what I've done in Delphi 2007 in Delphi 7? Thanks, Tom type BondConstants = class { Bond Types } type BondType = record const TREASURY = 3; AGENCY = 0; CORP = 1; MUNI = 2; SBA = 5; MBS = 4; CMO = 6; end; { Day Count Methods } type DayCount = record const ACTUAL_360 = 2; ACTUAL_365 = 1; ACTUAL_ACTUAL = 1; d30_360 = 0; ...

Delphi 7 to Delphi XE
Have been using Delphi 7 for many moons ( have got later versions but never upgraded to ) My first problem is: Component Palette. in XE it is a small toolbar docked in top right in Delphi 7 it gives a large view of all the components. I am struggling to be able to cope/access my components.in Delphi XE. Can I make the component pallette tool bar the same size as Delphi 7, or is there a fast way to view/choose all available components in XE, that I have not spotted yet? Kind Regards, Robert. Hi, What I know is that in Delphi 2010 and XE you can choose between t...

Delphi XE2 Translation Manager is crippled compared to Delphi 7
Delphi XE2 Translation Manager enables editing only of the properties that were previously saved to the DFM file. That means only properties that were changed from their default values in the original source language form. So if a TLabel Alignment is taLeftJustify I can't edit or even see its value in the translated form grid editor. Delphi 7 Translation Manager enabled editing and viewing of all the properties of a component included in the form. It also enabled editing properties using the Object inspector. Am I missing some definition in Delphi XE2 to enable all properties ...

DesignIDE package and porting Delphi 7 components to Delphi XE2
HI I am porting components from Delphi7 to Delphi XE2, and started run in problems regarding MaskProp.dcu, some of the components uses this, and is looking for TMaskProperty class. After a lot of browsing on the net i figured out that all these units is packaged in the designide.dcp. So i have the design time component in a package that requires the designide.dcp and then the runtime component package that reguires the designtime package for the component. In the runtime component package i get errors regarding the MaskProp.dcu and the TMaskProperty class. I dont know what to do from ...

Does anyone know if Delphi 8 Pro Upgrade (HDB1380WWCS181) contains Delphi 7?
Hello Delphi Community, Does anyone know if Delphi 8 Pro Upgrade (HDB1380WWCS181) contains Delphi 7? Thank you, Dean Atteberry. Dean Atteberry wrote: > Does anyone know if Delphi 8 Pro Upgrade (HDB1380WWCS181) contains Delphi 7? Unlikely - my Delphi 8 Architect Upgrade did not. Eric > {quote:title=Dean Atteberry wrote:}{quote} > Does anyone know if Delphi 8 Pro Upgrade (HDB1380WWCS181) contains Delphi 7? It did when it was originally released (actually, Delphi 7.1). I don't know if it still does, however. (The only reason we bought Delphi 8 was that we n...

Delphi and Delphi for .Net
It seems that Delphi for .Net is slower than Delphi Win32 native applicaiton. I would like to know is it true all .Net application is slower than Win32 native applicaiton or it is Delphi for .Net only. Your information is great appreciated, Inung On 2011-06-21 18:20:17 +0100, Inung Huang said: > It seems that Delphi for .Net is slower than Delphi Win32 native applicaiton. > I would like to know is it true all .Net application is slower than > Win32 native applicaiton or it is Delphi for .Net only. If you are only running the code in the application once then, yes, yo...

Delphi 2007 RTL in Delphi 7
I read somewhere that it is possible to use Delphi 2007's (or for that matter Delphi 2006's) RTL in Delphi 7 by just recompiling the source of RTL. Is this really possible? What are the benefits that we can derive using a higher version's RTL? TIA Yogi Yang Yogi Yang wrote: > I read somewhere that it is possible to use Delphi 2007's (or for > that matter Delphi 2006's) RTL in Delphi 7 by just recompiling the > source of RTL. If it actually compiles in Delphi 7, I guess it would be possible. OTOH, if one has Delphi 2007 already, I don't s...

Migrating from Delphi 7 to Delphi XE3
Hello, Its time to leave the old Delphi 7 and move to the new (but not the latest) XE3. I was wondering if there is a good book or reference to learn all new things XE3 added. Any suggestions? On 5/3/2013 10:17 PM, George Karatsiolis wrote: > Hello, Its time to leave the old Delphi 7 and move to the new (but not the latest) XE3. > I was wondering if there is a good book or reference to learn all new things XE3 added. Try this one for starters: http://tinyurl.com/cgsu243 Aside from that you really need to evaluate your application. XE3 is Unicode for example.... So her...

Using Delphi 7 and Delphi 2010
I had a project in Delphi 7. I worked on it in Delphi 2010. When I try to open the .dpr again in Delphi 7, the IDE toolbar widens across both monitors, and Delphi 7 locks up. It appears that Delphi 2010 modifies the .dpr in a way that makes Delphi 7 unable to open it again. All my forms & units appear to open fine in D7 after D2010, except for the warnings on the ExplicitHeight and ExplicitWidth properties being missing... I can easily recreate the .dpr, but is this expected behavior? Thanks. Tom Field wrote: > I had a project in Delphi 7. > > I worked o...

Migrating From Delphi 7 to Delphi 2010
We did not know which forum was the best for this question. We have been wanting to migrate from Delphi 7 to a later version for years but it appears to be a daunting task. We first looked at D2006 and that was a radical new world. We bought D2010 a couple of years ago and not done much with it because there are so many parts to our applications. We have done a few new applications in D2010 and they seem to work okay. D2010 has not been impressive, perhaps because of the strangeness compared to D7. Is is possible for us to do a phased sort of migration where we do a form at a time? ...

Delphi 7 to Delphi 2009 conversion
Hello group, What do I need to do to comile the following code in D2009. Compiler error after the Else E2010: Incompatible Types 'AnsiChar' and 'Char' if isUnicode then SearchHandle := FindFirstFilew( PWideChar( fn ), FindDataW ) else SearchHandle := FindFirstFile( PAnsiChar( Ansistring( fn ) ), FindDataA ); <<<<<compiler error in the above line >>>>>>>>>>> Regards, Bryan > What do I need to do to comile the following code in D2009. > Compiler error after the Else > E2010: Incompati...

Moving from Delphi 7 to Delphi 2007
Is there any compelling reason to move (quite a large project) from Delphi 7 to Delphi 2007? Specifically, is there better Vista/Win7/Win8 integration provided by Delphi 2007? (In the project I am already using a custom manifest file for Vista/Win7 etc.. and not the std XPMan component) Does 2007 add any new bugs to the scene? Thanks Rael Rael wrote: > Is there any compelling reason to move (quite a large project) from > Delphi 7 to Delphi 2007? If you are going to upgrade, why not upgrade to something newer? > In the project I am already using a custom man...

I wrote an application and used cracked delphi 7, after i bought delphi 7
I wrote an application and used cracked delphi 7, I sold it, after i bought delphi 7 and recompiled application, is now my application legal or? > {quote:title=Ivan Ivanov wrote:}{quote} > I wrote an application and used cracked delphi 7, I sold it, after i bought delphi 7 and recompiled application, is now my application legal or? "I embezzled some money from my employer, returned the funds, and then got it back as a bonus. Can I still be arrested?" Uhhh .... didn't you just confess to a crime? > {quote:title=Ivan Ivanov wrote:}{quote} > I wrote an appli...

Unofficial Delphi 7 updates
Anybody noticed, even tried this Enhanced Run Time library for Delphi ? It's a hack of the D7 RTL/VCL http://blog.synopse.info/post/2009/12/20/Enhanced-Run-Time-library-for-Delphi-7 It's very interesting and I'd like to know it's stability. Edwin Ye wrote: > Anybody noticed, even tried this Enhanced Run Time library for Delphi > ? It's a hack of the D7 RTL/VCL This library violates Delphi's license (redistributing of RTL/VCL source files is not allowed). The last post was deleted and I'm sure this one will be deleted, too. -- Andreas H...

Web resources about - Delphi 7 Pro to Delphi XE2 - VersionInfo - embarcadero.delphi.nativeapi

Using Detours Express from GCC
Detours Express must be compiled using a Microsoft C++ compiler. It can be used from GCC, but some significant issues do come up. When attempting ...

Resource Hacker
Freeware utility to view and modify Windows executable resources.

SpyEye Builder v1.1.39: Inside the Ressource file
1 VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEOS 0x4 FILETYPE 0x1 { BLOCK "StringFileInfo" { BLOCK "040904e4" { VALUE "CompanyName", ...

versionInfo
x identifies a special release. Once every couple of yearsy identifies a yearly release (every January)z identifies a regular release (3-6 times ...

Marek Sienczak
Marek Sienczak Software

Upgrading Grails from 2.0 to 2.2
... Spock compiler plugin cannot execute because Spock 0.7.0-groovy-1.8 is not compatible with Groovy 2.0.7. For more information, see http://v ...

Frozen Depths
29.Aug.2014 Hello everyone! This is the day! Frozen Depths version 1.05 has been officially released! I did say August would be the month, though ...

Overview (Apache Hadoop Main 2.5.0 API)
Overview Package Class Use Tree Deprecated Index Help PREV NEXT FRAMES NO FRAMES Apache Hadoop Main 2.5.0 API Common org.apache.hadoop org.a ...

Change Requests - OGC(R)
INSPIRE What is the OGC? Search this site: Home Standards OGC Standards List Compliance Implementations Submit Change Request Programs Standards ...

Resources last updated: 11/25/2015 6:21:44 AM