Introduction to the Windows 8 Company Store client - Beta

As you may already know it is not allowed to install ModernUI application from another ModernUI application. This is one of the biggest issue for this Company Store as for any others (Windows InTune, SCCM 2012 SP1, etc.).

To work around this issue you can use an internal web site as describe here, or you can now use a desktop application that will be used to:

-          Install ModernUI application

-          Launch ModernUI application

-          Launch “legacy” exe application

This desktop application will be launched by a defined protocol (daipp://). Note that as this application is not a Windows service, this application always run with user privileges and so does not represent a security issue by itself. And consequently it will only be possible to install ModernUI application and not Windows Desktop application (I will never work on installing Windows desktop application as this will require admin rights and that would represent a high security risk).

This Windows 8 Company Store client have been developed with a coworker based on work he have done and that he has described here (How does Windows desktop applications and ModernUI applications can communicate?).

 

Note that all the Windows 8 Company Store client and the Windows 8 Company Store ModernUI application are completely independents. You may use in your StoreStructure.xml all the previous hyperlinks or commands described here and the new ones described in this page.

Finally, you can download the Windows 8 Company Store client – Beta here.

Windows 8 Company Store client usage

Install/Launch a ModernUI application

Using the Windows 8 Company Store client you will be able to install ModernUI application stored on a file share like this:

           <Application>
               <Name>My Internal App</Name>
               <ShortDescription>This one will be install from a share</ShortDescription>
               <MSStoreID></MSStoreID>
               <Logo></Logo>
               <HyperLink>daipp://internalWin8App?identity=[APPX_IDENTITY]?app=[APPID]?Path=[PATH TO THE APPX]</HyperLink>
      </Application>

The APPX_IDENTITY:

            This represent the Name attribute of the Identity tag in the application manifest AppManifest.xml. This is the package identity:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns=http://schemas.microsoft.com/appx/2010/manifest>
<Identity Name="58460AntoineJ.Windows8CompanyStore" Publisher="CN=AntoineJ" Version="1.1.0.22" />

The APPID:

            This represent the Id attribute of the Application tag in the application manifest appManifest.xml. This is the name of the application in the package (note that a package can contains multiple application like the Microsoft.windowscommunication package that contains the Mail, Calendar, Contact and Chat applications):

<Applications>
   <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Enterprise_Store.App">

The PATH TO THE APPX

            This is the path of the AppX. The folder containing the appx should also contains the certificate and all the dependencies. Generally this is the folder generated by Visual Studio (no need for the powershell script).

 

When you launch this command, the Windows 8 Company Store client will first check if the application (based on the APPX_IDENTITY) is already installed. If this application is not installed, the client will:

-          Try to access the appx package

-          Check if the application’s publisher is trusted. If not,

  • The certificate (*.cer or *.pfx) located in the appx folder will be installed using the provided install_cert.exe binary (Admin rights needed).

-          If there is dependencies in the application folder, dependencies will be installed

-          The application package is then installed

-          The application is launched (if the Windows 8 Company Store client is still in focus)

If the application is already installed it will launch the application APPID from the APPX_IDENTITY package.

Note that there is no update process yet for internals applications.

“Install”/Launch a Windows Store application

Using the Windows 8 Company Store client you will be able to “install” Windows Store application.

           <Application>
               <Name>My Windows Store App</Name>
               <ShortDescription>This one will be install from the Windows Store</ShortDescription>
               <MSStoreID>[MSSTORE_ID]</MSStoreID>
               <Logo></Logo>
               <HyperLink> daipp://WINDOWSSTOREWIN8APP?identity=[APPX_IDENTITY]?app=[APPID]</HyperLink>
      </Application>

The MSSTORE_ID:

            This is composed of the APPX_IDENTITY and of a String depended of the publisher signature. The MSSTORE_ID can be found in the %localappdata%\Packages folder. The MSSTORE_ID is the name of the application folder.

The APPX_IDENTITY:

            This represent the Name attribute of the Identity tag in the application manifest AppManifest.xml (the AppManifest.xml can be found in the %ProgramFiles%\WindowsApps\[Application] folder, using an elevated cmd ). This is the package identity:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">
<Identity Name="58460AntoineJ.Windows8CompanyStore" Publisher="CN=AntoineJ" Version="1.1.0.22" />

The APPID:

            This represent the Id attribute of the Application tag in the application manifest appManifest.xml. This is the name of the application in the package (note that a package can contains multiple application like the Microsoft.windowscommunication package that contains the Mail, Calendar, Contact and Chat applications):

<Applications>
   <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Enterprise_Store.App">

 

When you launch this command, the Windows 8 Company Store client will first check if the application (based on the APPX_IDENTITY) is already installed. If this application is not installed, the client will open the Windows Store. If the application is already installed it will launch the application APPID from the APPX_IDENTITY package.

Note that the update process depend on the Windows Store update process.

 

Launch a Windows Desktop application

Using the Windows 8 Company Store client you will be able to launch Windows desktop application.

           <Application>
               <Name>My Windows Desktop App</Name>


             
<ShortDescription>This one will be launch an exe file</ShortDescription>
               <MSStoreID></MSStoreID>
               <Logo></Logo>
               <HyperLink>daipp://WindowsLegacyAPP?ExePath=[PATH TO EXE] [ARGS]</HyperLink>
      </Application>

The PATH TO EXE:

            This is the path to the exe file to launch. Note that you should not use double/simple quote, and there is no need to escape special chars. Here is an example of valid path:

C:\Program Files\Internet Explorer\iexplore.exe

The ARGS:

            This represents the arguments you might want to give to your application. For example:

C:\Program Files\Internet Explorer\iexplore.exe http://www.bing.com

 

 

 

Last edited Mar 11, 2013 at 9:01 AM by AntoineJ, version 2

Comments

No comments yet.