HP Sprout Marketplace Partner Application Installer Specifications Version 1.1 1. Introduction An HP Sprout Application is a Native OS Application taking advantage of the HP Sprout hardware using HP Projective Computing Platform or the innovative multi-screen layout. An example of a “Native” OS Application is a Windows Desktop Application built to run on Windows Operating System. HP Sprout Application developers package and distribute their application by two rules: - use MSI Setup package which is supported by Microsoft Windows Installer ecosystem ensure installation is silent This document is primarily targeted for HP Sprout Application developers who want to promote their application (Partner Application) in the HP Sprout Workspace Application View in Gallery. This document would explain how HP Sprout Application developers could provide application metadata, icon files and how to include custom actions as part of their MSI Install or Uninstall sequence to facilitate the HP Sprout Workspace Application promotion mechanism. 2. Related Terms Terms Explanation OS Marketplace Partner Operating System An Application Developer or Company registered with HP Sprout Developer Portal Globally Unique Identifier Microsoft Installer package GUID MSI 3. Provisioning Workflow: A Marketplace Partner should register with HP Sprout Developer Web Portal. A Marketplace Partner provides HP with a MSI Application setup package through the HP Sprout Developer Web Portal. 3.1. Guidelines for Application Installer (MSI Setup package) creation process: a. All relevant binaries in the application should be digitally signed for verifying trust of an application. b. Installers should place binaries (especially the launch point executable) in a trusted location (please follow OS Guidelines). c. Installers should support Silent Install, Silent Uninstall and Silent Update mechanism, where no user input is needed or no user interface is shown during setup process. d. Create the HP Marketplace Partner provisioning XML manifest file in a text editor. XML Tag Name Description AppDisplayName Display Name of the application AppDescription Short introduction of the app. DeveloperDisplayName Display Name of the app developer AppVersion Version number AppLaunchPath Full Install Path of the application including the filename. AppCategory Category of Application in Sprout Marketplace Requirements This field will be used to show user the display name of the Application. 20 chars max. This field will be used to show user the description of the Application This field will be used to show user the Publisher or Developer name or Company name Version should be in format: Major.Minor.Revision.Build E.g: 1.0.1.0 Please use Environment Variables in path E.g: %ProgramFiles(x86)% The Executable to launch should be in the root of Install directory. Please refer to HP Sprout Marketplace Category List Eg: “Photography” AppID Reserve a unique app ID to identify an Application launch point in the HP Workspace Application. DeveloperID Reserve a unique GUID to identify an App Developer or Publisher. To generate an app ID, create an entry in Management Portal. Start with version 0.0.0.1 to create a pre-approved entry. (final version can be updated after app approval process. Use the ‘Public Item ID’ in the technical info section of the item entry. i.e. g2.5d25727a-bf01-4dd7bb3b-xxxxxxxxxxxx To generate GUID use Microsoft “guidgen.exe” tool Example format is DB72D2EE-32DA-4742AA4E-5A79F1761D83 Sample HP Sprout Marketplace Provisioning XML File: <?xml version="1.0" encoding="utf-8"?> <AppMetadata spec="1.0"> <AppDisplayName>AB Software</AppDisplayName> <AppDescription>This is a Photo editing App</AppDescription> <DeveloperDisplayName>ABCompany</DeveloperDisplayName> <AppVersion>1.0.0.0</AppVersion> <AppLaunchPath>%ProgramFiles(x86)%\ABCompany\ABSoftware.msi</AppLaunchPath> <AppCategory>Photography</AppCategory> <AppID>g2.5d25727a-bf01-4dd7-bb3b-xxxxxxxxxxxx</AppID> <DeveloperID>DB72D2EE-32DA-4742-AA4E-5A79F1761D83</DeveloperID> </AppMetadata> e. After authoring the HP Marketplace Partner provisioning XML manifest file, attach the file and send it to Sprout App Review ([email protected]) to get it encrypted. Remember to start with “[Encrypt]” in your email title. f. You will receive an email reply with encrypted file “appinfo.hpspdat”. g. Include this encrypted “appinfo.hpspdat” file as part of Application Installer package and place it in the Install directory root. h. The Install Action, Create a Registry Sub key (preferably after installing all the required files) with the directory path of “appinfo.hpspdat” in the Main Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Hewlett-Packard\HP.PC.SproutAppList ; Attention! - The Registry SubKey should be a GUID of your choice; the registry string value should be the directory path pointing to the appinfo.hpspdat. - For Sprout to read the data from the Registry properly, the app should be targeted to x64 platform (Platform="x64") as shown in the Product.wxs in the Appendix A. Example Wix Setup MSI Project snippet: <Fragment> <DirectoryRef Id="TARGETDIR"> <Component Id="RegistrySub" Guid="{0DFDC6AD-7F1E-48DD-BB9F-E8A213052190}" KeyPath="yes" Win64="yes"> <RegistryKey Root="HKLM" Key="SOFTWARE\Hewlett-Packard\HP.PC.SproutAppList\46CC98E37AB5-4219-B35B-905335139A8A" ForceDeleteOnUninstall="yes"> <RegistryValue Type="string" Name="metadata" Value="%ProgramFiles(x86)%\ABCompany\appinfo.hpspdat"/> </RegistryKey> </Component> </DirectoryRef> </Fragment> i. The Uninstall action to remove the Registry subkey (GUID) from Registry hive should be already done automatically by the uninstall action of the MSI Setup project. j. For Update action, kindly please add code to update the Registry subkey referring the same GUID and kindly please do not remove it. k. Include Application Icons as part of Installer package. The installer should place a folder named “icons” in the application’s Install directory root. The icon should be in “.png” format. [INSTALL_DIRECTORY_ROOT] |---appinfo.hpspdat | |---icons | |---icon.png - Icon needs to be of dimensions: 600 width x 600 height (pixels) Name of Icon should be “icon.png” l. Create the Setup MSI package and upload to HP Sprout App Developer Portal for reviewing by HP Sprout Application Certification team. APPENDIX A Sample MSI Installer Project (Wix project). Note: This is only a sample and should be used only for developer education purposes. Product.wxs <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Name="ABSoftwareSetup" Language="1033" Version="1.0.0.0" Manufacturer="Hewlett-Packard Company" UpgradeCode="1342cf48-5b83-4e25-8461-b03dc3105fce"> <Package Id="*" InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64" /> <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> <MediaTemplate EmbedCab="yes" /> <Feature Id="ProductFeature" Title="ABSoftwareSetup" Level="1"> <ComponentGroupRef Id="ProductComponents" /> <ComponentRef Id="RegistryMain"/> <ComponentRef Id="RegistrySub"/> </Feature> </Product> <Fragment> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFilesFolder"> <Directory Id="INSTALLFOLDER" Name="ABCompany"> <Directory Id="ICONSFOLDER" Name="icons"/> </Directory> </Directory> </Directory> </Fragment> <Fragment> <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> <Component Id="cmp0A8691AD804241D395ED6A8B8C4F395D"> <File Source="$(var.ABSoftware.TargetPath)" KeyPath="yes"/> </Component> <Component Id="cmpBC16E02E92374658A5F19CB4D2EDC01A"> <File Source="..\ABSoftware\bin\Release\ABSoftware.msi.config" KeyPath="yes"/> </Component> <Component Id="cmpE5D15B4668FF4A26A5C80D5744079A10"> <File Source="..\ABSoftware\bin\Release\appinfo.hpspdat" KeyPath="yes"/> </Component> <ComponentRef Id="cmpC36291C6BDB24AB7B7DB0BAA33B70833"/> </ComponentGroup> </Fragment> <Fragment> <Component Id="cmpC36291C6BDB24AB7B7DB0BAA33B70833" Directory="ICONSFOLDER" > <File Source="..\ABSoftware\bin\Release\icons\icon.png" KeyPath="yes"/> </Component> </Fragment> <Fragment> <DirectoryRef Id="TARGETDIR"> <Component Id="RegistrySub" Guid="{0DFDC6AD-7F1E-48DD-BB9F-E8A213052190}" KeyPath="yes" Win64="yes"> <RegistryKey Root="HKLM" Key="SOFTWARE\Hewlett-Packard\HP.PC.SproutAppList\46CC98E37AB5-4219-B35B-905335139A8A" ForceDeleteOnUninstall="yes"> <RegistryValue Type="string" Name="metadata" Value="%ProgramFiles(x86)%\ABCompany\appinfo.hpspdat"/> </RegistryKey> </Component> </DirectoryRef> </Fragment> </Wix> ABSoftwareSetup.wixproj <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">x86</Platform> <ProductVersion>3.8</ProductVersion> <ProjectGuid>b6323ee3-194b-42ed-adf2-cd1a3bd5bd23</ProjectGuid> <SchemaVersion>2.0</SchemaVersion> <OutputName>ABSoftwareSetup</OutputName> <OutputType>Package</OutputType> <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath> <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <OutputPath>bin\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> <DefineConstants>Debug</DefineConstants> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <OutputPath>bin\$(Configuration)\</OutputPath> <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath> </PropertyGroup> <ItemGroup> <Compile Include="Product.wxs" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\ABSoftware\ABSoftware.csproj"> <Name>ABSoftware</Name> <Project>{68be939c-8074-4396-b7f4-a34a3d2763c6}</Project> <Private>True</Private> <DoNotHarvest>True</DoNotHarvest> <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups> <RefTargetDir>INSTALLFOLDER</RefTargetDir> </ProjectReference> </ItemGroup> <Import Project="$(WixTargetsPath)" /> <!-To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Wix.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> --> </Project>
© Copyright 2024 ExpyDoc