View Full Version : I published to the Windows Store
Maarten
11-28-2016, 01:59 PM
Hi All,
I managed to publish my VisualWorks Smalltalk application to the Windows store using setupbuilder and lots and lots of command lines:
https://www.microsoft.com/store/apps/9nblggh5lnxq
By the way it is also on the Mac AppStore:
https://itunes.apple.com/fr/app/stakepoint-projects/id953850751?mt=12
:)
linder
11-29-2016, 04:57 AM
Hi Maarten,
WOW - Amazing! Very interesting! Congratulations. Would you mind sharing how you did it? It would be so cool if you could share your experience with us.
Thank you :)
Friedrich
linder
11-30-2016, 10:49 AM
I have tested "StakePoint Projects" and..........it's amazing. Very, very cool. CONGRATULATIONS!
Friedrich
Maarten
01-12-2017, 04:06 AM
Hello,
This is a very brief explanation what to do if you want to deliver your application to the Windows Store:
Prerequisites:
A real windows machine with Windows Pro (no virtual machine).
You will need to install the centennial tools and the "desktop app converter" from the Windows store as well as the windows kits.
Make sure the reference image has the same build number as your windows installation.
You need to make a silent installer package using your normal installer.
You have to sign your app and installer with a Microsoft recognised codesign certificate such as Digicert.
You have to ask Microsoft to be part of the early bird program for the desktop converter and sign their contracts to get fully thrust authorisations for the final windows installer
You have to make sure the Company as spelt in your installation package is identical to your and windows account company name.
Dropbox shall be turned off otherwise the converter will continue to throw access denied errors and not a single application shall be open on the converter directories (not even file explorer)
Run a command line as administrator and then do something like:
DesktopAppConverter -Installer C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\StakePoint_Setup.exe -InstallerArguments "/S" -Destination C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter -PackageName "StakePoint.StakePointProjects" -Publisher "CN=ADA52C1B-5D43-4DEA-9182-D92D46CFAC98" -Version 1.31.0.0 -MakeAppx -Verbose
You can remark here that the company name here is your windows store company account number.
You now will have an installer but most of all you will have the installer manifest and all the files in the right place.
In the case, we created the following AppxManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10">
<Identity Name="StakePoint.StakePointProjects" ProcessorArchitecture="x86" Publisher="CN=ADA52C1B-5D43-4DEA-9182-D92D46CFAC98" Version="1.31.0.0" />
<Properties>
<DisplayName>StakePoint.StakePointProjects</DisplayName>
<PublisherDisplayName>ADA52C1B-5D43-4DEA-9182-D92D46CFAC98</PublisherDisplayName>
<Logo>Assets\SampleAppx.50x50.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
</Dependencies>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
<Applications>
<Application Id="StakePoint.StakePointProjects" Executable="StakePointPortfolio.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements DisplayName="StakePoint.StakePointProjects" Description="StakePoint.StakePointProjects" BackgroundColor="#777777" Square150x150Logo="Assets\SampleAppx.150x150.png" Square44x44Logo="Assets\SampleAppx.44x44.png" />
<Extensions>
<uap3:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="portfolio" Parameters="/v FILESTOLOAD "%1"">
<uap:SupportedFileTypes>
<uap:FileType>.portfolio</uap:FileType>
</uap:SupportedFileTypes>
</uap3:FileTypeAssociation>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Now in order to proceed to the next step this xml should be modified.
The converter will created standard icons so these can be replaced easily.
But also the DisplayName and PublisherDisplayName shall be modified.
After automated modifications the AppxManifest.xml will look like:
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10">
<Identity Name="StakePoint.StakePointProjects" ProcessorArchitecture="x86" Publisher="CN=ADA52C1B-5D43-4DEA-9182-D92D46CFAC98" Version="1.31.0.0" />
<Properties>
<DisplayName>StakePoint Projects</DisplayName>
<PublisherDisplayName>SASU STAKE POINT</PublisherDisplayName>
<Logo>Assets\StakePoint.50x50.png</Logo>
</Properties>
<Resources>
<Resource Language="en-us" />
</Resources>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
</Dependencies>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
<Applications>
<Application Id="StakePoint.StakePointProjects" Executable="StakePointPortfolio.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements DisplayName="StakePoint Projects" Description="StakePoint.StakePointProjects" BackgroundColor="#FFFFFF" Square150x150Logo="Assets\StakePoint.150x150.png" Square44x44Logo="Assets\StakePoint.44x44.png" />
<Extensions>
<uap3:Extension Category="windows.fileTypeAssociation">
<uap3:FileTypeAssociation Name="portfolio" Parameters="/v FILESTOLOAD "%1"">
<uap:SupportedFileTypes>
<uap:FileType>.portfolio</uap:FileType>
</uap:SupportedFileTypes>
</uap3:FileTypeAssociation>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
</Package>
Next thing to do is to run the makeappx command in the following way:
"C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe" pack /d "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\StakePoint.StakePointProjects\PackageFiles" /p "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\StakePoint.StakePointProjects\StakePoint.Sta kePointProjects.appx"
The will create you a new installer package taking account of the correct values:
The next thing is to sign this.
The respective commands are
1) to make a certificate:
"C:\Program Files (x86)\Windows Kits\10\bin\x64\MakeCert" /n "CN=ADA52C1B-5D43-4DEA-9182-D92D46CFAC98" /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e "01/01/2040" /sv "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.pvk" "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.cer"
To convert the certificate:
"C:\Program Files (x86)\Windows Kits\10\bin\x64\Pvk2Pfx" /pvk "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.pvk" /pi XXXXYOUR PASSWORDXXX /spc "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.cer" /pfx "C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.pfx"
To sign
C:\Users\Maarten\Dropbox\StakePoint\CodeSigning\Di gicert\SignTool sign /fd SHA256 /a /f C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\MyNewKey.pfx /p XXXXYOUR PASSWORDXXX C:\Users\Maarten\Dropbox\StakePoint\DesktopAppConv erter\StakePoint.StakePointProjects\StakePoint.Sta kePointProjects.appx
have fun,
Maarten MOSTERT
linder
01-13-2017, 10:55 AM
WOW!!! Thanks so so much for sharing this very interesting information, Maarten!!!
Friedrich
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.