Troubleshooting Application Validation failures

Printer-friendly version

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)

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Posted On : November 3, 2010 - 05:01
Modified10's picture
Offline
Last seen: 2 weeks 4 days ago
Joined: Apr 12 2010
Points: 1265

Hi DG,

Thanks for the quick response. Hopefully this is something that will be resolved in the future, it would be nice to place links to help files and anything else that may come up externally.

Posted On : November 3, 2010 - 00:27
DG Rooven's picture
Offline
Last seen: 1 day 15 hours ago
 Brown Belt
Joined: Sep 23 2009
Points: 19600

Hi Modified10,

I have verified this with the validation team and it's true that you cannot have multiple shortcuts pointing to different target values even though they are not advertised. You can have multiple shortcuts but should point to only one target value(the main executable).

Regards
Rooven

Intel AppUp(SM) Center
Intel AppUp(SM) Developer Program

Posted On : November 2, 2010 - 02:01
Modified10's picture
Offline
Last seen: 2 weeks 4 days ago
Joined: Apr 12 2010
Points: 1265

Hello,

Just to confirm my understanding, this essentially means we cannot create a shortcut that points to other files such as a help document, even if that shortcut is not advertised?

Posted On : August 9, 2010 - 14:04
Offline
Last seen: 1 day 8 hours ago
 Red Belt
Joined: Jun 24 2010
Points: 8681

Hi Jherra,

You can have multiple shortcuts in the table, but each of the shortcuts should point to the same target value.
In other words all of the shortcuts should finally target to the same file name.
If your application name is BOXEE.exe, then all the shortcuts should be pointing to the same BOXEE.exe.

Hope this clarifies.

Praveen

Posted On : August 5, 2010 - 09:25
Hal
Hal's picture
Offline
Last seen: 3 weeks 5 days ago
 Red Belt
Joined: Sep 24 2009
Points: 47216

Hi J,

I am clarifying and someone will get back to you.

Regards
Hal G.
Technical Support Team
Intel® Atom™ Developer Program
Intel AppUp(SM) Center

Posted On : August 3, 2010 - 11:29
Offline
Last seen: 20 weeks 6 days ago
Joined: Aug 3 2010
Points: 10

Hi guys,

One thing I don't get. According to step 1, there should only be one Target value.
Now, suppose [#BOXEE.exe] is a valid Identifier. The example has 2 rows highlighted in the shortcut table (identifying different shortcuts), but both shortcuts have the same target value (i.e., [#BOXEE.exe]; remember we're assuming it's a valid identifier..).
So, I don't understand if it's valid to have multiple entries in the table (as many as shortcuts I want to have) pointing to the same target value, or not.

Can you clarify this?
Thanks,
j.

Posted On : April 6, 2010 - 23:55
DG Rooven's picture
Offline
Last seen: 1 day 15 hours ago
 Brown Belt
Joined: Sep 23 2009
Points: 19600

Hi Eugene,

Thank you for your query.

Currently only C++ and C languages are supported on the Intel® Atom™ Developer Program. Support for more languages and runtimes will come in the future. Please keep an eye on the following link for updates:

http://appdeveloper.intel.com/en-us/develop

If you are using unsupported runtimes, you application validation will fail.

Regards
Rooven

Intel® Atom™ Developer Program
Intel® AppUp(SM) Beta Center

Posted On : April 6, 2010 - 20:56
eugene-klyuchnikov's picture
Offline
Last seen: 1 year 28 weeks ago
Joined: Jan 8 2010
Points: 2462

What about JavaFX applications? Is there a way to pass validation for them?

JavaFX application requires JavaFX runtime to start. The only way is to use Java WebStart feature, because JavaFX runtime redistribution package simply doesn't exist!

So if you make an msi installer containing url to .jnlp - you do not pass validation, because it doesn't install all the binaries. If you package binaries, you can'n start them because JavaFX runtime can't be accessed in a user-friendly way.

Posted On : March 17, 2010 - 02:20
Andre's picture
Offline
Last seen: 1 year 47 weeks ago
Joined: Sep 21 2009
Points: 8159

Hello,

please use the Forum for help, this might be a good start:

http://appdeveloper.intel.com/en-us/node/1187

Best Regards

Andre B.

Technical Support Team
Intel® Atom™ Developer Program
Intel® AppUp(SM) Center

Posted On : March 16, 2010 - 23:47
karthick-hsa's picture
Offline
Last seen: 1 day 19 hours ago
 Red Belt
Joined: Nov 17 2009
Points: 27322

We followed all the steps given.

When i launch from the store, it shows the black screen. It can read my program. Because i binded my "esc" key for exit. But it can't take the images from my installed directory. It searches the images from the Intel AppUp beta center installed directory.

But it works fine on the shortcuts.

What are the steps i exactly need to follow...

Plz give the step by step procedure.

Posted On : March 10, 2010 - 03:00
DG Rooven's picture
Offline
Last seen: 1 day 15 hours ago
 Brown Belt
Joined: Sep 23 2009
Points: 19600

Hi Sundar,

You may have more that 1 shortcut, however they should all target the same executable.
If you refer to the above links and follow the instructions, there should not be any issue for you to configure/verify that the paths are correct and thus no issue with launching your application(s).

Regards
Technical Support Team
Intel® Atom™ Developer Program Team
Intel® AppUp(SM) Center Team

Posted On : March 3, 2010 - 23:08
Sundar's picture
Offline
Last seen: 50 weeks 6 days ago
Joined: Feb 8 2010
Points: 857

Is that means that we can't use more than one shortcuts right?. Is it possible to have one in desktop and one in start menu>all programs> where exe shortcut and uninstaller will be there.? or we can't give shortcut to those. Please let me know, mine looks like arnoldpalmergolf window in step1 but having two more shortcuts entry like that.

--
Cheers,
Sundar.

Posted On : February 26, 2010 - 01:21
Praveen's picture
Offline
Last seen: 19 weeks 5 days ago
 Brown Belt
Joined: Nov 10 2009
Points: 3561

So we have to retain # for the target name after removing [] ?

Posted On : January 15, 2010 - 11:28
BrianDevArch's picture
Offline
Last seen: 4 weeks 2 days ago
 Black Belt (Community Leadership) Red Belt
Joined: Nov 13 2009
Points: 62276

This post describes how to remedy this issue by ensuring required DLL's are available to your application regardless of the Startup Path:

TIP: Make sure your required DLL's are in the right place to avoid validation failure

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.