Function | Package: windows | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## set-file-version-info

Arguments: file &rest &key comments company-name file-description file-version internal-name legal-copyright legal-trademarks original-filename product-name product-version private-build special-build

Returns the file version info strings from a file on the Microsoft Windows platform, after optionally modifying some of the existing fields in the file. See file-version-info for a description of the returned value.

file should be the pathname or path namestring of a file. The file is typically an EXE or DLL file.

The specified file must not be executing when this function is called, or else it will fail when it attempts to obtain write access to the file. (If you want to modify the .exe file which is running Lisp -- allegro.exe or mlisp.exe or whatever -- you have to operate on a copy of that file because the one executing should not be modified.)

Any keyword argument that is passed should be a string to replace the existing string for that field in the file, if any. If that field currently does not have a value in the file, or the file has no file version info resource at all, then the new value is not written.

If the field does exist in the file but the field is not long enough for the new value, then the new value is truncated to fit the existing field size. There is no way to increase the length of a field or to add the fields that are not defined already. The plist that is returned reflects the state of the file after any fields have been updated, reflecting any such truncation that was done.

It is a good idea to first call file-version-info to see which attributes are defined in the file, and the length of the field for each one. The field length that is returned for each attribute is the maximum character length of a lisp string that will fit in the field.

If the file is an application that was built with Allegro, then the EXE file is actually a copy of a standard lisp EXE, and so the fields will be limited to the lengths of the fields that Franz established when creating this EXE file.

### Example

    (set-file-version-info "c:/temp/my-app.exe"
                          :company-name "Our Company"
                          :file-version "3.6.15.4"
                          :file-description "This is our latest killer app."
                          :comments "Nothing more to say.")

The function generate-application takes a file-version-info argument which allows users to specify the VERSIONINFO of the application executable. See Setting the VERSIONINFO of the application executable on Windows in delivery.htm.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version