An intermediate guide on what the CrossTie editor options mean.

Search our compatibility center (Compatibility - Search) for the application you'd like to create a tie file for. Once you've located the program and you are an advocate you want click on the 'CrossTie Editor' tab in the upper-right of the entry page. You'll now be at a page with a 'New Application Profile' link.

The basic concept with Tie files is that every application has an 'application profile' which tells Crossover what kind of program it is, how to detect if the program is installed or not, the bottle type it prefers, and what other things it may depend on being installed. This makes the application profile modular and allows us to specify that Program A requires Program B, Program B requires Program C, and so on.

After the application profile is created you'll then be able to create an 'Install Profile' that tells Crossover how to install the program, what parameters the application's installer might need, and any cleanup work that would need to be done post-install.

Lastly you can create a 'CD Profile' which will help Crossover figure out if a disc in the computer contains the application you want to install.

Links in this document take you to the advanced spec for each field.

Application Profile

First off press the 'New Application Profile' link and you'll be taken to the CrossTie editor. You'll need to do a dry-run install of your application in Crossover first in order to fill out these fields in the CrossTie editor. That way you'll know exactly what values to enter because you have the installed program available.

Comment This is the super useful place to put information about what changes or needs your application has. It is freeform text that will only be displayed here for you and future CrossTie editors.

Crossover Version - You'll want to set to each version of Crossover Office or Crossover Games you can install your application into. CrossOver XI combines both our Office and Games products. So for CrossOver 11.0 and higher it does not matter what product you select.

When choosing the version numbers it should only have 1 '.' in it. So CrossOver 11.0 is good; 11.0.0 is not.

The CrossOver Version stated here is listed as the minimum version that the CrossTie works in. So Beersmith works in 9.0, 10 and 11. We only have to specify 9.0 in the Version as CrossOver 10, 11 and beyond will all see that they are after 9 and use this CrossTie file.

Flag - This is almost always going to have 'Application' checked.

  • Applications are linked to the Crossover version mentioned above.
  • Components are installed helper programs, like .NET 2.0 or the XML Parser installer.
  • Virtual is for non-installers, for applying things like registry tweaks where there isn't any installer used.

Installed Key Pattern
Installed Display Pattern - These two fields are how Crossover checks a bottle to see if the application is already installed in it. For this pattern you need to run the Windows uninstaller application that's in every bottle.

  • To run this program on a Mac go to the Programs menu in Crossover, Run Command, select the bottle containing your application, and press the Open Shell button. A terminal window will open and type: wine windows/system32/uninstaller.exe --list
  • To run this program on Linux open a terminal and run "(path to cxoffice directory)/bin/wine --bottle "(bottle name)" ~/.cxoffice/(bottle name)/drive_c/windows/system32/uninstaller.exe --list"

The result is normally in the format name1|||name2''. You'll want to put ''name1'' in as the Installed Key Pattern, and ''name2'' as the Installed Display Pattern. Leave out the 3 |||'s. The ''name is a regular expression, so you can use wildcards (.* matches any sequence of characters, . matches one character) and some characters need to be escaped with a backward slash (notepad++ would escape as notepad++).

Windows Version Bottle Templates The 'use' setting chooses the bottle type to create when your program is installed. This is the basic, most common use of this command. The 'install' variable is only used when this tie is called as a pre-dependency by another tie.

Download URL If the installer is downloaded from somewhere on the net enter that url here, down to the actual file to grab. You need to have at least one entry with a blank locale as the default. You can also specify a locale (en for English for example) to add language-specific download locations. Valid extensions are .exe .com .bat .cmd .msi .msp .otf .ttc .ttf .zip .cab .tar .tar.gz .tgz .tar.bz .tbz .tb2. Crossover will automatically unzip the file if needed.

Download Page URL If there's a web page users need to visit to manually get the installer, or more information, enter that url there.

Download Glob This helps with package detection. If the user selects an EXE file before selecting the package this field helps Crossover suggest to the user what install profiles may match this installer. Please only fill this out if you feel the entry would be unique to this application.

Inside "Advanced Application Profile Options:"

Steam Id This is only set for applications that have steam id and can be installed via the steam interface.

Inside "Advanced Install Forward Options:"

Installer Id This is the app id of the C4 entry (in the format com.codeweavers.c4.xxx'') that contains the Installer Profile. For example this Application Profile (''com.codeweavers.c4.1'') is for Word 2000, but the Installer Profile is under Office 2000 (''com.codeweavers.c4.1545). This way we only need one common Installer Profile for multiple Application Profiles.

Inside "Advanced Bottle Selection Options:"

Application Bottle Group By default new installs go into their own new bottle. This setting lets you specify an app id to look for and install this program into the same bottle if it's present. This is different from a dependency in that it's an optional decision instead of a requirement. Visio 2007 doesn't have to go into the same bottle as Office 2007, but you could have it install in there for easier management (fewer bottles) and possibly it would allow the programs to interact with each other.
 

Extra For This is a C4 app id (com.codeweavers.c4.xxx) that indicates this profile is to upgrade an existing installed application, but it doesn't require the existing application to exist as a dependency. An example of this behavior is Quicken 2008 to Quicken 2010. The retail update to Quicken 2010 can upgrade Quicken 2008 if it exists, but the update is the full version itself and can just install even if Quicken 2008 isn't present. This helps cut down on extra bottles and duplicate listings when an installed application is upgraded.

Inside "Advanced Install Detection Options:"

Installed Registry Glob
Installed File Globs These are alternate detection methods for figuring out if an application is already installed in a bottle if uninstaller.exe doesn't return a usable installed registry key/pattern.

The Registry Glob points to an exact registry location key, value, and data. You can use regedit to examine the bottle containing your program to see if there are any specific keys added by your application, and if so then enter these in the Installed Registry Glob.

The File Glob follows a file path in search of a unique file to show the program is installed. The File Glob can also use expandable strings. These are shortcuts you can enter for a file path so you don't have to enter a full, absolute file location that could change (shown values are just examples, and path returned can and will be different).

  • %AllUsersProfile% = c:\users\Public
  • %AppData% = c:\users\crossover\Application Data
  • %ComSpec% = c:\windows\system32\cmd.exe
  • %LocalAppData% = c:\users\crossover\Local Settings\Application Data
  • %ProgramFiles% = c:\Program Files
  • %SystemDrive% = c:
  • %SystemRoot% = c:\windows
  • %Temp% = c:\windows\temp
  • %UserProfile% = c:\users\crossover
  • %WinDir% = c:\windows
  • %WinSysDir% = c:\windows\system32
  • %Desktop% = c:\users\crossover\Desktop
  • %StartMenu% = c:\users\crossover\Start Menu
  • %Programs% = Programs
  • %Accessories% = Programs\Accessories

So the syntax you'd enter in Installed File Globs if you're using an expandable string would be: %ProgramFiles%\TestApp\TestApp.exe

Install Profile

This section handles how to run the installer. Mostly I've found you can leave a lot of sections blank as they don't apply to installing most unsupported applications and are there for special cases.

On the "Pre-installation Profile" Tab

Comment This is the super useful place to put information about what changes or needs your application has. It is free form text that will only be displayed here for you and future CrossTie editors.

Installation Notes Any messages you want users to see before they begin the install. Put any tips needed to get through the installer here. You need to have one blank (no locale set) entry before you can add language-specific notes.


Pre-Dependencies If your application depends on another application, service pack, etc. being installed first you can add the app id number (from the compatibility center, http://www.codeweavers.com/compatibility/search/ Internet Explorer 6 is number '15') and Crossover will attempt to install that dependency before it runs this installer. You can press the + to add multiple pre-dependencies.

Post-Dependencies Here is where you would put any applications that would need to be installed AFTER the main application is finished. It is the same format as Pre-Dependencies.

Inside "Advanced Pre-Installation Options:"

UDF Check Really only for the crazy WoW: Lich King hybrid Mac/Windows disc. The disc always wants to mount the Mac side on Linux, but we need the Windows installer so this will cause the disc to remount until it can find the unique file it wants on the Windows partition.

CX Diag Check You can enter cxdiag checks that need to be satisfied before the install can proceed. The cxdiag error name is the wiki page name. The syntax is: AppRequire:MissingLibLcms

On the "Install Profile" Tab

Installer Globs Crossover will search a CD's autorun.inf file, or look for a setup.exe or install.exe named file to run to begin the install automatically. If your application has a different installer name (like Foofoothingamajig.exe) you can enter it here and Crossover will try to start it for the install. This is a regular expression so you can use wildcards (* and $) as well as expandable strings, mentioned earlier.

Inside "Advanced Installation Profile Options:"

Post Install Reboot Sets Crossover to reboot the bottle after installation completes. Defaults to rebooting.

Local Installer Globs Here you can list dependency files to check and see if they already exist locally before downloading them again. Like looking for 'dxsetup.exe' on the install disc instead of having Crossover re-download that installer from the net.

Inside "Advanced Installation Environment:"

Installer Treat As This will let you tell Crossover the name of the installer, regardless of what it actually is. For example if the Installer Treat As value is 'installer.cab' it will be treated as a Cab file regardless of the actual installer name (which could be something like 'setup.exe'). Supported extensions that Crossover knows how to handle are .exe .com .bat .cmd .msi .msp .otf .ttc .ttf .zip .cab .tar .tar.gz .tgz .tar.bz .tbz .tb2.

Installer Environment This lets you set a __WINE=foo'' or ''CX_FOO=foo__ environment variable for the installation. For example setting: WINE_WAIT_CHILD_PIPE_IGNORE communicates to Wine not to wait for all the processes to finish to consider the installer installation complete. This can be particularly useful if there are processes that don't exit right away but detecting the end of the install is still needed to proceed.

Installer DLL Overrides Allows you to modify certain DLLs during installation.

Installer Windows Version Set the installer to run in a certain Windows environment, for example the installer only completes successfully in a Windows 98 environment, but the program is going into and runs best in a Windows XP environment.

Installer Options You can add flags here that get passed to the installer. One flag per entry, in whatever format the installer wants.

Installer Silent Options Same thing as Installer Options but that are passed during a silent install, like an unattended or remote install.

Inside "Advanced Installation Steps:"

PreRmFakeDlls You can specify fake Wine stub dlls in /windows/system32 to temporarily rename with .bak so an installer can complete successfully. Crossover will figure out if it's a Wine stub dll or a native Windows dll in /windows/system32 and will only rename fake stubs.

Pre-Install Registry Any registry keys that need to be set before installation commences.

Files to Copy For programs that don't use an installer this will let you specify a file glob to copy from the install media root location to a location in the bottle.

Link Files The name and location to create a Windows shortcut. Each shortcut path must start either with %StartMenu%'' or with ''%Desktop%. Workdir is the directory the command should be started in. Useful if you want to toss a shortcut to the installed application's .exe on the desktop so it's easy to find.

Inside "Advanced Installer Extraction Options:"

Self-Extract Threshold Enter a number (Kb) for the maximum size of the installer file to be before Crossover attempts to run it as a self-extracting installer.

Self-Extract Options Options to pass to the self-extracting installer in whatever format the self-extracting installer wants them in, one per line.

Self-Extract Silent Options Options to pass to the self-extracting installer in whatever format the self-extracting installer wants them in, silently, one per line.

Zip Encoding Zip files do not often specify what character encoding the files inside the zip will be. This allows the installer to specify this encoding so that file names are properly translated. This is generally only important for Japenese zip files.

On the "Post-installation Profile" Tab

Skip Adding Icons to Windows Programs Menu specifies if the Program Menu detection code should run. By default it does, but for profiles where there are known to be no menu items you can speed up the install by setting this to false.

Skip Adding Document Associations Specifies if there are any document associations to be set up. By default it is true, but for profiles where there is know to be no associations you can speed up the install by setting this to false.

Inside Advanced Post-installation Options:

Post Register Dlls Some applications fail to register dlls they need, especially if they are copy only profiles. Here is where you can state the DLLs that need to be explicitly registered at the end of the install.

Post Install URL Sometimes it is advantages to open a given web page after the install has finished. Maybe in order to have the user setup an online account or read important notes. Here is where you would set that URL.

Inside Advanced Association Options:

Default File Associations Associations to be exported to the host environment after the installation of this application. These association will be setup to have action on the default open action.

Alt File Associations Like Default File Associations these associations are exported to the host system, however these are added to the 'Open with...' list for such files.

On the "Secondary Profile Options" Tab

Nothing here is even Intermediate. It is all quite advanced.
[c4p_Advanced]

CD Profile

This profile helps to associate a CD/DVD as being the install media for a program. Crossover does this by looking for a unique matching file on the disc, similar to the UDF check. You'll want to make this as specific as possible otherwise Crossover will think every disc is the correct one to install from.

Comment This is the super useful place to put information about what changes or needs your application has. It is free form text that will only be displayed here for you and future CrossTie editors.

Glob Starting from the root of the disc this is the path to the unique file. * (match any) and ? (match one character) are allowed as wildcards.

Pattern This is a string inside the file you're pointing to that's unique. If there isn't a unique file on the disc you can point to something generic like autorun.inf and then to a unique pattern in that file.

Next Step: C4 Data - File Framework

Last modified on 2023-09-29 20:41:17 UTC by Andrew Balfour