Understanding Application Deployment Files

Citrix states in their article: CTX230181

CTX230181 - Understanding Application Deployment Files (ADF or .wfs ) for Installation Manager

This document was published at: http://support.citrix.com/kb/entry.jspa?externalID=CTX230181

Document ID: CTX230181, Created on: Jul 20, 2001, Updated: Apr 23, 2003

Products: Installation Manager for MetaFrame XPe

An ADF package contains an installation script file that describes the application setup requirements. Installation scripts are an accessible and customizable part of the application installation process. By learning how to edit installation scripts, you can:

• Customize the installation of applications

• Troubleshoot the installation of a difficult application

• Modify an already installed application

During packaging, Packager writes a statement in the installation script for each file the application copies to the packaging machine. This statement is called a CopyFile statement. During installation of the application on your target servers, the Installer service uses these CopyFile statements to determine where and how to copy files to the target servers. The Packager program writes each CopyFile statement in a section called &SetupConfigActions_WINNTX, where X is one of the following:

4 for Windows NT Server 4.0, Terminal Server Edition
5 for Windows 2000 Server

For example:

[&SetupConfigActions_WINNT4]
CopyFile=%APPDIR%CitrixCF.adfProgram FilesPaint Shop ProCDR32.flt,%PROGRAMFILES%PaintShopProCDR32.flt,Newer,,7:15:1997:4:12:0,,
CopyFile=%APPDIR%CitrixCF.adfProgram FilesPaint Shop ProCMX32.FLT,%PROGRAMFILES%PaintShop ProCMX32.FLT,Newer,,7:15:1997:4:12:0,,

The Packager program uses the following syntax to write CopyFile statements:

CopyFile=Source-file,Destination-file,Overwrite-flag,Version,Date,Compression-flag,MD5-hash

where:
Source-file is the full path and name of the file as it exists in the package.
Destination-file is the full path and name of the file as it exists on the servers.
Overwrite-flag determines the behavior of the Installer service if the destination file already exists. The Overwrite-flag can be set to one of the following values:

Never: The destination file is never overwritten.
Write: The destination file is overwritten if it is not a system, hidden, or read-only file.
Always: The destination file is always overwritten, even if the file is system, hidden, or read-only.
Newer: The destination file is overwritten if the version or date of the source file is newer than the version or date of the destination file (described below). If the version field is null (represented by a comma, not by a version number), the date is used. If the date field is null, the version field is used. If both version and date are non-null, both the date and the version must be newer for the file to be overwritten. One of Date or Version must be specified if Overwrite is Newer.

The Version field can be used only for executables or dll files that have a version resource. If the source file is newer, the destination file is overwritten even if it has read-only attributes. When copying a file over an existing destination file, the Installer service preserves the file attributes of the destination file.

Version: The optional version field specifies the resource file version of the source file. The file must be an executable or a dll. This field is used along with the overwrite-flag. The format of the version field is n.n.n.n, where each n is a number.
Date: The optional date field is the date of the source file. It is used in overwrite checking. The format of the date field is mm:dd:yyyy:hh:mm:ss.

The valid values for each date field are:

mm: Month [1,12]
dd : Day of the month [1, 31]
yyyy : Year in full format, all 4 digits [1900, (no upper bound)]
hh : Hours since midnight [0, 23]
mm: Minutes after the hour [0, 59]
ss: Seconds after the minute [0, 59]

Compression-flag: This value is represented by a null value (a comma).
MD5-hash: This value is represented by a null value (a comma).

You can modify CopyFile statements to control the behavior of the Installer service as it installs applications on your target servers.

For example, by default, during installation of applications on your target servers, the Installer service replaces a file that already exists on the target servers only if the file in the package is a newer version. If your target servers contain a version of the file that you want to preserve and the packaged installation contains a newer version of the file, modify this file's CopyFile statement. Changing its Overwrite flag to Never causes the Installer service never to replace the server's version of the file.



Primary links

Custom Search

Who's new

  • Cachleferah
  • Weedbacuupe
  • vororourn
  • vDonellaCandrah
  • SnnaSusi

Who's online

There are currently 0 users and 6 guests online.

KrissysCorner.com RuthSwensonLaw.com CreativeLizardProductions.com

DISCLAIMER:

None of this has anything to do with us, someone else is responsible for the entire thing, and we have no idea who or why. We do not know anything about it. It may be alien life forms for all we know: we haven't a clue. You cannot blame us for anything that may result from your visit. That was entirely your own personal choice, made by you of your own volition, and without our knowledge. We do not, after all, have any control over you and cannot by any stretch of the imagination be expected to accept or acknowledge, be it legally or morally, any accountability for decisions made by you on an independent basis, utilizing your own free will, and without our intervention. We are therefore in no way, shape, or form answerable to anyone for any consequences arising from the aforementioned or indeed any other actions, similar or otherwise, because it was not us that did, or did not do anything. It is not even remotely our fault, and we are in no way prepared or willing to accept any liability, not even slightly, ever. We are, in fact completely and utterly blameless, in that it is definitely not our concern, and no blame can possibly be laid at our doorstep, even if we had one, the possession of which we hereby reserve as being entirely our own free choice. The onus is not on us at all, and furthermore, never has been. The entire matter is wholly beyond our control, and completely out of our hands, each of which are washed scrupulously clean of the whole business. We are not accountable for anything at all, and we hereby categorically deny all responsibility for all that has ever, or will ever happen. Our innocence is therefore wholly beyond doubt and absolutely unimpeachable, and so cannot, under even the remotest or unlikeliest circumstances, be brought into question. By clicking either on a link on this site, clicking on a link that leads to this site, or by arriving at this site by natural or supernatural means, you are in effect accepting responsibility for the fact that it is all entirely your own fault, down to the most miniscule detail, and that you are wholly accountable for whatever outcome may arise as a consequence of the aforementioned action or actions insofar as they were undertaken personally by you on an entirely voluntary basis and without any persuasion, coercion or influence from any party or parties other than yourself. Don't come sniveling to us, we are only figments of your imagination. I also agree that if I am ever with a contributor to this website during mealtimes I agree to pay for any super-sizing of their meal, or at least a nice dessert or one of those foo-foo drinks with an umbrella or a monkey. By admitting to have seen the worthless spineless drivel on this website (also known as content)

I Agree Wholeheartedly and Without Reservation to the above. (Except maybe for that part about the monkey.)

All Your Base Are Belong To Us.

Soylent Green Is People!

Never make a bet with a Sicilian when Death is on the Line!

No. Really, I do agree.