Video Screencast Help
Symantec Appoints Michael A. Brown CEO. Learn more.

About Windows Installer Shortcuts

private Created: 20 Jan 2009 • Updated: 20 Jan 2009 | 2 comments
Language Translations
Sidd's picture
+2 2 Votes
Login to vote

This article is intended to those of you who are new to Wise Package Studio (WPS). This article describes Shortcuts and Creating an Advertised Shortcuts using Wise Package Studio.

Introduction

Shortcuts are links to files or applications installed on the target system. There are two types of shortcuts used in a Windows Installer package:

  • Advertised (Windows Installer) Shortcuts
  • Non-advertised (Standard) Shortcuts

It is important to know the differences between the two.

A non-advertised shortcut (Standard Shortcuts) is a standard windows shortcut. If you right-click it you will see the target field points to the executable that will be launched. If, for whatever reason, this executable is missing the application will simply fail.

An advertised shortcut (Windows Installer Shortcuts) is a technology specific to Windows Installer. If you right-click an advertised shortcut the target field will be greyed out. An advertised shortcut supports advertisement and repair.

Repair means that if the executable to which the shortcut is pointing is not there then windows installer will repair the application and replace the missing file. In fact, it will also check other important files, flagged as key paths, and if any of those are missing it will replace them as well.

Advertisement is a process in which the application appears to be installed the shortcuts are there but the application is not actually installed. The installation, the copying of files and registry entries, only takes place when the user first launches the application. An advertised install only puts down what we call the application interfaces. An application interface is any way to start the application. This could be a shortcut, file extension or COM interface.

How Windows Installer Shortcuts Work

Shortcuts for Windows Installer applications are not regular shortcuts. Instead of containing full paths to .exes or other type of files, they contain objects called "descriptors." A descriptor is a compressed representation of a {Product-Code, Feature Key, Component Code} triple.

When you click on a Windows Installer shortcut, the Windows shell uses the data in the descriptor to call the MsiProvideComponent function; it takes a Product Code, a Feature Key, and a Component Code and returns a path for that component. In the process of doing that, the API verifies that all of the components that are part of the specified feature have a valid keypath on the computer (the key files exists), and it does any installations necessary to get all the components there if any of them are missing by using the MsiConfigureFeature function. Then the shell gets a path back, which it uses, the ShellExecute function to execute the process.

Briefly, about Advertisement

Advertisement is a feature of the Windows Installer technology that 'advertises' the availability of an application without actually having the application installed on the PC. Advertising can be used for an entire application, or for individual features such as a spellchecker or clip art. Advertising is also known as install-on-demand.

One benefit of advertising is that the application is not actually installed. This reduces the disk space used for applications, or portions of an application that are infrequently used. Instead, advertising creates a shortcut that points to the location of the setup for the application. When the user clicks on that shortcut or opens a file associated with the application, Windows Installer installs the application for the user, and then runs that application.

To the user, an advertised application appears as though it is installed because the Start menu and desktop contain shortcuts that point to that application. In addition, the file associations are already made in the registry, so those files associated with the application will also have related icons.

A shortcut created with advertising is a file descriptor, which points to the location where the setup for the application is. As a result, the shortcut properties are disabled so they cannot be edited.

There are two types of advertising, known as "assigning" and "publishing." If an administrator assigns an application to a group, then these users can install the application on-demand. If, however, the administrator publishes the application to the group, no entry points appear to these users and installation-on-demand is only activated if another application activates the published application.

Assigning makes an application available, and it appears as if it has been installed to a user, without it actually having been installed. Assigning adds shortcuts and icons to the Start menu, associates the appropriate files, and writes the registry entries for the application. If a user tries to open an assigned application, the installer then installs the application.

Publishing is another method of advertising a feature or application. Publishing, which does not populate the user interface, is only available from a Windows 2000 Server. If another process attempts to open a published application, the application is installed by Windows 2000.

The entire application could be advertised by running the installation in advertising mode. To do this, you run the setup program from the command line with the /j option. When you run an installation in this mode, all elements of the installation that support advertising, such as shortcuts, file extensions, and more, are installed as advertised. Then when the user invokes the application from advertised entry points, the application is installed. The /j switch overrides any advertising options you set for individual features within the application.

Following is an example of a command line statement that runs an .MSI in advertising mode (/j), for the current user (u), in quiet mode (/q):

  • Msiexec.exe /ju "C:\my docs\msisample.msi" /q

Adding Advertised Shortcuts to an installation application using Wise Package Studio

The Shortcuts Page lets you add, edit, and delete shortcuts for files in the installation, and add icons for shortcuts you will install. You also can create a shortcut for a file on the destination computer that's not in the installation. Shortcuts for files that have associated shortcuts are created automatically if you select advertising options from the Advertising Setting in Wise Options.

Start Wise Package Studio then open Windows Installer Editor to edit the application.

Select Installation Expert tab, and then Navigate to Shortcuts Page in Installation Expert tab.

Select Shortcut , and then click on Detailsbutton which is there at right hand side of the Shortcuts Page

You will see the details of the Shortcuts you will notice that the shortcut you selected is Standard (non-advertised) Shortcuts with advertised option grayed out

Let's begin with adding Advertised Shortcuts to installation application.

Select Installation Expert, and then Navigate to Shortcuts page

From Current Feature, Select a Feature or condition. (Because any item you add must be assigned to a specific feature, you cannot add an item when All Features is selected.)

Note: Items that you add to a feature are installed on the destination computer only if the feature is installed. Items that you add to a condition are installed only if the feature is installed and the condition is true.

Which brings New Shortcut Dialog

Complete the dialog

  • File in the installation: Mark this to have the shortcut open a file in the installation
  • Advertised: This is marked by default, which means this shortcut appears on the destination computer regardless of whether its target is installed or advertised. When the end user opens an advertised shortcut, installation of the target .EXE file is initiated. If you clear this checkbox, the shortcut appears only if its target is installed, but not if its target is advertised.
    Note : If you designate a shortcut as advertised, and the shortcut's target is deleted, selecting that shortcut initiates self-repair. Self-repair is not initiated for non-advertised shortcuts.
  • Command Line: Mark this to have the shortcut execute a command line statement. Use this option to open a file that's not part of the installation, but only if you're sure the file exists on the destination computer
  • Command Line: Enter the entire command line statement, including arguments and other command line options
  • Shortcut Name: Enter a name for the shortcut.

Click Next to Proceed.

Select the installation file from the application to create a shortcut for.

Note: Files added under the Duplicate Files icon in the Features or Components tabs of Setup Editor do not appear because you cannot add shortcuts for duplicate files.

Click Next to Proceed

The Shortcut Destination Directory dialog appears.

Now Select the Destination Directory for the new shortcut.

Specify a directory to contain the shortcut. The predefined directories on this dialog represent standard system directories on the destination computer, regardless of their actual names. The most common location for application shortcuts is the Start menu's Programs directory, which is selected by default.

To put the shortcut in a new directory, click on New Folder to create it, with the option available at the bottom left of the dialog

To create the new directory enter the name of new directory Name at New FolderName as application name.

Select the Destination Directory

Click on Finish

The Shortcut Details dialog appears, where you can specify further details for the shortcut.

You will now see the advertised shortcut with the details furnished in the previous steps.

Remove the .exe extension from the Name field of the shortcut Details dialog or you can follow the naming standards.

In order to set/edit/change the display icon for the shortcut Click on New Icon which is there at bottom left side of shortcut Details dialog.

Click on Browse for the icon to specify the path of icon file.

Select an .Exe or .dll file or icon file

Select appropriate Icon for your shortcut. And click OK to close the dialog.

Click OK to close the dialog.

Now the Advertised Shortcuts is ready with details you furnished.

You can specify further details for the shortcut if needed as per the requirements.

Click on Ok button to save the changes.

The shortcut appears, to edit it, double-click on its name.

To delete shortcut, select the Shortcut and then click on Delete button.

Editing Shortcuts

To Edit Shortcuts, double-click on the Shortcuts name or Select the Shortcut and then click on Details button which is there at right hand side of the Shortcuts Page

From Current Feature, select a feature or condition and complete the dialog.

  • Name: The name of the shortcut. If the name is longer than 8.3 characters, the short (8.3) file name appears first, followed by a pipe character (|) and the long (Windows 95) file name.
  • Target File: (Read-only.) This contains the file name of the target of this file. You specified this file when you created this shortcut. To create a shortcut to a different file, delete this shortcut entry and create a new one. If you created a command line shortcut, this field is replaced by the Command Line field.
  • Command Line: This appears only if you created a command line shortcut. It contains the command line statement.
  • Dest. Directory: This lists all predefined directories and directories that you have created. Select the location for the shortcut on the destination computer, or click New Folder to create a new directory.
  • Arguments: Enter command line arguments to append to the command line statement that is executed to launch the target of this shortcut. You can enter property names surrounded by brackets to specify standard directories. (Example: To specify a file named Notes.txt in the Windows directory, enter [WindowsFolder]Notes.txt.)
  • Description: Enter a one-line description of the shortcut, which appears when an end user right-clicks on a shortcut file in Windows Explorer and selects Properties.
  • Working Directory: Select the directory that should be current when the target of this shortcut is launched.
  • Show Window : Select whether the target file opens in a normal, minimized, or maximized window.
  • Advertised: Mark this to have the shortcut appear on the destination computer regardless of whether its target is installed or advertised. When the end user opens an advertised shortcut, installation of the target .EXE file is initiated. If you clear this checkbox, the shortcut appears only if its target is installed, but not if its target is advertised. You can select a new feature or icon only if this checkbox is marked.
  • Feature: To associate this feature with a different shortcut, select the feature. Because non-advertised shortcuts cannot be associated with a feature, this field is enabled for advertised shortcuts only.
  • To select a New icon, click New Icon and specify the icon as described in the above steps
  • Click OK to Save Settings.

Validation

This section of the article describes relevant ICE (Internal Consistency Evaluator) to validate the integrity of a Windows Installer Package, that are related to Shortcuts. A simplified explanation of each is provided, along with a statement.

ICE 19: Advertised shortcuts must reference a component which has a ComponentID. Advertised shortcuts must reference a component which has a file as it's key member.

Explanation: A component without a ComponentID is not registered by Windows Installer, making it ineligible for use by an advertised shortcut.

When an advertised shortcut is activated, Windows Installer launches the file specified by the key member of the associated component. If the key member is not a file, launching it will be a bit of a problem...

ICE 43: Non-advertised shortcuts must reference a component whose key member is a registry entry under HKCU.

Explanation: If the key member of the component which provides the shortcut was anything but a registry entry under HKCU, the component would appear to be properly installed on the system and no repair would be invoked. This repair is necessary to place the profile of users other than the user who ran the install initially.

ICE 50: Icons associated with shortcuts must be stored in files with the same extension.

Explanation: If the extensions of the icon and the target file do not match, the shortcut will not have the correct context menu when the component is advertised.

ICE 59: An advertised shortcut must point to a component provided by the feature specified as the target of the shortcut.

Explanation: If the component specified is not installed on the target system, the specified feature will be repaired. Since the component is not provided by that feature, the target of the shortcut will still be unavailable, resulting in a broken shortcut or repeated attempts to repair the feature.

ICE 67: A non-advertised shortcut should avoid referencing a file provided by a component different than that of the shortcut if the installed location of the component can change from local to run from source.

Explanation: If the component who provides the target of the shortcut is changed from run from source to installed locally, the component that provided the shortcut would not be effected by the change, resulting in the shortcut incorrectly pointing to the run from source location.

Example: CompA installs File.exe and can be run locally or from source. CompB installs a non-advertised shortcut that references File.exe as its target. The initial installation configures CompA to run from source, so the shortcut installed by CompB points to the physical path of the source location for CompA. A maintenance installation later changes CompA so that it is now installed locally. Since the state of CompB was unaffected by the maintenance install, the shortcut continues to point to the source location.

ICE 69: A non-advertised shortcut should never reference a component not provided by the feature associated with the shortcut. (Error Condition)

A non-advertised shortcut should avoid referencing a component other than the component associated with the shortcut, even if that component is provided by the associated feature. (Warning Condition)

Explanation: The syntax used to reference the installed location of a component (for example, "[$component]") is only valid if the state of that component is changing. In a situation where the state of the component referenced in the target of the shortcut is not changing, the "[$component]" syntax will return null, resulting in an invalid shortcut.

ICE 90: A shortcuts directory should not be a public property (A directory whose name is in all caps) if that directory falls under the user's profile.

Explanation: If the user changes the location of the shortcuts directory from the command line for example, the location of the shortcut could end up in the user's profile and not in the "All Users" profile. In a per-machine installation, this could cause the shortcut to not be available to other users.

ICE 91 : Shortcuts installed to folders which are strictly per-user will not be available to all users, even in a per-machine installation.

Explanation: The following directories are strictly per user and as such, their location does not vary between per-machine and per-user installations.

  • AppDataFolder , FavoritesFolder , NetHoodFolder, PersonalFolder, PrintHoodFolder, RecentFolder, SendToFolder, MyPicturesFolder , LocalAppDataFolder

ICE 94: A non-advertised shortcut may not point to a assembly installed to the global assembly cache.

Thanks,
Sid

Comments 2 CommentsJump to latest comment

RichMusic's picture

When I came across the listing for this article, I was excited. I thought that I had finally found the article for the 'rookies'. I thought that my answers were just paragraphs away!

Still, the question of 'How do I launch WPS?', and 'Where are the indications that the WISE Package Studio is even installed.

In viewing the Symantec Management Console (Title Bar) with Select Resources just below it, I see 10 references:
Name                                                                                Type
Wise InstallTailor 6.0.0 - English (United States)        Inventory Rule
Wise InstallTailor 6.0.0 - English (United States)        Software Release
Wise InstallTailor Package                                               Software Package
Wise Toolkit                                                                          Software Package
Wise Toolkit 7.0.2.145                                                        Software Release
WiseScript for NS 6.0.190 - English (United States)    Inventory Rule
WiseScript for NS 6.0.190 - English (United States)    Software Release
WiseScript for NS Package                                               Software Package
wisescript.msi                                                                     MSI Software Installation File
WiseToolkit.exe                                                                   EXE Software Installation File

Still, I don't know for sure it is installed, and the Server Administrators don't seem to know where the executable is, or if it is installed. This is our next Symantec environment, and is not yet in use, so no one wants to get to work with it, and I'm just trying to get a step ahead if I can.

Can someone help me with the simple questions:
1. How do I launch the WISE Package Studio?
2. Does it appear from the information above, that it was installed?
or 3. How can I know, where should I look for the addition to the Symantec Manages Console environment, for the software?
and 4. Is there a true beginner's article for a 'rookie' like me?

Thanks in advance for your (Anyone's) time!!

0
Login to vote
wancsho's picture

Hey Sidd,

Thanks a lot for sharing with us the info regarding the difference between adv and non-adv shortcuts.

I have a query related to your post:

Could you please share a bit of your knowledge related to "Publishing" -adv shortcuts, as how an another application triggers or activates the installation of an adv application? Rather how an administartor publishes an application to the entire group of users.

 

Thanks!

0
Login to vote