We have been building an installer for Windows Store (MSIX_APPX). We need to open our app from browsers by specified uri scheme. So we added Declaration "windows.protocol". We specified custom Restarter.exe file as executable. This file is placed near our main executable in APPDIR.
When build is complete we have .msixupload as a result. In this bundle I see several appx's. Structure of the bundle is: Main-x86.appx contains manifest where our declaration (windows.protocol) specified:
There is only our main executable (not Restarter) in main appx.
Code: Select all
<uap:Extension Category="windows.protocol" EntryPoint="Windows.FullTrustApplication" Executable="Restarter.exe"> <uap:Protocol Name="ourschema"> <uap:DisplayName>Restarter</uap:DisplayName> <uap:Logo>Assets\StoreLogo.png</uap:Logo> </uap:Protocol> </uap:Extension>
When we try to upload generated msixupload to Windows Store we receive an error:
I suppose that Windows Store validator tries to find Restarter.exe in main package and doesn't find it.error: Manifest validation error: Line 39, Column 94, Reason: The file name "Restarter.exe" declared for element "*[local-name()='Applications']/*[local-name()='Application']/*[local-name()='Extensions']/*[local-name()='Extension' and not(@Category='windows.backgroundTasks' or @Category='windows.appService')]" doesn't exist in the package.
So, how can we avoid this issue? Can we place Restarter.exe to main package? Can we stop separating our bundle to main packages and asserts? Or maybe there is another way?