Reply to comment

  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.
  • Access denied. You must login to view this page.

Troubleshooting Application Validation failures

This document covers two of the most common validation failures the validation team is seeing in the Windows environment.

Application Launch Issue

Application Shortcut Issue

Application Launch Issue

In order for an application to pass validation it must successfully launch from the Intel AppUp(SM) Center after it has been successfully installed. This launch method is in contrast to launching the application from a desktop or program menu shortcut that has been created by the MSI install package.

Currently the AppUp Center beta does not set a working or Start In directory when launching an application. This means that your application code cannot assume the current working directory is the same as the directory the application is installed to, or any other particular directory for that matter.

If correct execution of your application depends on opening data files, your code must be able to determine the location of those files independent of what the current or working directory was at the time your application was launched. Probably the easiest way to do this is to have your install package save the location the data files were installed to, either in a registry key, ini file, or some other method. Then when the application requires those files, it can read that location and correctly locate the files.

A good method to test whether your application assumes a particular working directory is to launch it from a command line in a directory other than the one the application and any data files are located in. For example, suppose your application is name MyApp.exe and is installed to C:\Program Files\MyApps. Also suppose it has a data file named MyData.ini located in C:\Program Files\MyApps\Data. Now we can perform two tests. First we’ll set the current working directory to the same location that the application is installed to and then launch the application.

  1. cd C:\Program Files\MyApps
  2. MyApp.exe


At this point your application should correctly launch. This is just a baseline test to ensure you don’t have other problems before proceeding to the real test at hand. In the second test we will set the current directory to someplace other than where the application and data files are located and try to launch it again, using the full application path.

  1. cd C:\
  2. C:\Program Files\MyApps\MyApp.exe


If your application launched correctly in the first scenario but failed to launch in the second, it is a good bet you are relying on a current working directory in a way that will cause your application to fail to execute correctly from the Intel AppUpSM Center. If your application correctly launched in both scenarios, congratulations! You are more prepared to pass validation than many other unwary developers.

Application Shortcuts Issue

Ensuring that your application shortcuts are properly advertised. This issue has to do with a properly configured MSI package. In short, each app must have one shortcut that is advertised so the Intel AppUpSM center can launch your application.

The Guidelines

A high level summary can be found on our Application Packaging Requirements Guide: http://appdeveloper.intel.com/en-us/article/packaging-requirements. The issue we are seeing centers around these requirements:

  • Single executable. Any and all shortcuts must target only one executable. Your installation can automatically add desktop, quick launch, Start menu, and other shortcuts, but they all must target the same executable.
  • Shortcut Target field. The Target entry of the Shortcut table must be a valid feature name/foreign key (Identifier data type) in the Feature table. We support only this data type in the Target field. Do Not use square brackets ([ ]) to indicate a formatted string.

Background Information

This section contains links that describes how and where advertised shortcuts should be configured. It is possible to view and edit these settings using a Microsoft utility called Orca.

Specifying Shortcuts (brief intro)
http://msdn.microsoft.com/en-us/library/aa372018(VS.85).aspx

Shortcut Table
http://msdn.microsoft.com/en-us/library/aa371847(VS.85).aspx

Note that the Identifiers (see URL below) *must* be used

Identifier type
http://msdn.microsoft.com/en-us/library/aa369212(VS.85).aspx

Page contents: The Identifier data type is a text string. Identifiers may contain the ASCII characters A-Z (a-z), digits, underscores (_), or periods (.). However, every identifier must begin with either a letter or an underscore.

Orca.exe Utility
http://msdn.microsoft.com/en-us/library/aa370557(VS.85).aspx

Orca is a command line and GUI utility to view (and edit) this metadata found in an MSI package and was used in the screenshots below.

Sample Scenario

Step 1: Find Target and Component in Shortcut Table
Note the Target and Component values, we will verify those in the next two steps. In the Boxee MSI the Target value uses "[" and "]", which is not allowed as stated in the Identifier link above. In addition, there are multiple Targets identified; there should only be one Target value. The Component value is correct and the Arnold Palmer Golf MSI is correct for both Component and Target values.

Again from above: The Identifier data type is a text string. Identifiers may contain the ASCII characters A-Z (a-z), digits, underscores (_), or periods (.). However, every identifier must begin with either a letter or an underscore.

 

Step 2: Find Target Value in Feature Table
In this step we go to the Feature table and look for an entry that uses the Target value from Step 1. Below you will see that the bottom MSI does this, but the top one does not. For a moment let's say that [#Boxee.exe] is a valid Target identifier, it should then be found in the Feature table. Again, note that [#Boxee.exe] is not a proper format.

 

Step 3: Validate Component Value in Component Table and Get KeyPath Value.
In this step we need to go to the Component table to validate that the Component value in Step 1 is set. It has been done correctly in both examples.

 

Step 4: Validate KeyPath and FileName in File Table
In both examples the File value was found in the File table using the KeyPath in Step 3. The final check is to ensure that the FileName value matches the app filename. Note, while both are correct, that they are in different formats. If the original filename is 8 characters (8.3 format) or less (as is Boxee) than no worries, just put in the filename and extension (again, 8.3 format). However, if the filename is longer than 8 characters you will need to use the link below. This is what the Arnold Palmer Golf game had to do.

Filename Data Type
http://msdn.microsoft.com/en-us/library/aa368590(VS.85).aspx

 

And Don't Forget…

Five things you should check before submitting your app for validation 

 

4.555555
Average: 4.6 (9 votes)

Reply

The content of this field is kept private and will not be shown publicly.