[appstore] try to fix error code 0x80070057 during App install

* First thing I'm gonna say is that, if your app validation process is unable to catch universal
  installation errors like the one above, then your app validation process *SUCKS*, Microsoft!
* Hopefully, this has to do with the additional languages not being passed to MakePri's /dq
  option. And there I also have to say thanks to Microsoft for *NOT* documenting how the heck
  one is supposed to pass multiple languages with /dq, so that you actually end up with
  <qualifier name="Language" value="en-US;ar-SA;bg-BG;..."> in priconfig.xml.
* What's that quote again? "Show me an App Store than only triples my work, and I will happily
  let it take a third of my revenue"...?
This commit is contained in:
Pete Batard 2022-08-10 22:50:17 +01:00
parent b2bf29f652
commit 55ce65af6c
No known key found for this signature in database
GPG Key ID: 38E0CF5E69EDD671
2 changed files with 20 additions and 7 deletions

View File

@ -30,6 +30,9 @@ set ARCHS=x86 x64 arm arm64
set DEFAULT_SCALE=200 set DEFAULT_SCALE=200
set OTHER_SCALES=100 125 150 400 set OTHER_SCALES=100 125 150 400
set SCALED_IMAGES=LargeTile SmallTile Square44x44Logo Square150x150Logo StoreLogo Wide310x150Logo set SCALED_IMAGES=LargeTile SmallTile Square44x44Logo Square150x150Logo StoreLogo Wide310x150Logo
rem All the languages listed below *MUST* match the ones from the Resources section of AppManifest.xml
set DEFAULT_LANGUAGE=en-US
set ADDITIONAL_LANGUAGES=ar-SA bg-BG zh-CN zh-TW hr-HR cs-CZ da-DK nl-NL fi-FI fr-FR de-DE el-GR he-IL hu-HU id-ID it-IT ja-JP ko-KR lv-LV lt-LT ms-MY nb-NO fa-IR pl-PL pt-BR pt-PT ro-RO ru-RU sr-SP sk-SK sl-SI es-ES sv-SE th-TH tr-TR uk-UA vi-VN
set PACKAGE_IMAGES=^ set PACKAGE_IMAGES=^
Square44x44Logo.altform-lightunplated_targetsize-16.png^ Square44x44Logo.altform-lightunplated_targetsize-16.png^
Square44x44Logo.altform-lightunplated_targetsize-24.png^ Square44x44Logo.altform-lightunplated_targetsize-24.png^
@ -77,6 +80,16 @@ if ERRORLEVEL 1 goto out
echo [Files]> bundle.map echo [Files]> bundle.map
rem Now who the £$%^&* at Microsoft thought it was a good idea to have MakePri require '/dq lang-en-US_lang-fr-FR-...'
rem so that you actually end up with a <qualifier name="Language" value="en-US;fr-FR;..."/> in priconfig.xml?!?
rem Oh, and of course, good luck finding this documented ANYWHERE on Microsoft's website!
setlocal EnableDelayedExpansion
set STUPID_MAKEPRI_LANGUAGES=lang-%DEFAULT_LANGUAGE%
for %%l in (%ADDITIONAL_LANGUAGES%) do (
set STUPID_MAKEPRI_LANGUAGES=!STUPID_MAKEPRI_LANGUAGES!_lang-%%l
)
setlocal DisableDelayedExpansion
for %%a in (%ARCHS%) do ( for %%a in (%ARCHS%) do (
echo. echo.
echo Creating Rufus_%VERSION%_%%a.appx... echo Creating Rufus_%VERSION%_%%a.appx...
@ -97,7 +110,7 @@ for %%a in (%ARCHS%) do (
rem When invoking MakePri, it is very important that you don't have files such as AppxManifest.xml or priconfig.xml rem When invoking MakePri, it is very important that you don't have files such as AppxManifest.xml or priconfig.xml
rem in the directory referenced by /pr or you may get ERROR_MRM_DUPLICATE_ENTRY when validating the submission as, rem in the directory referenced by /pr or you may get ERROR_MRM_DUPLICATE_ENTRY when validating the submission as,
rem for instance, the 'AppxManifest.xml' from the 100% scale bundle will conflict the one from the x64 bundle. rem for instance, the 'AppxManifest.xml' from the 100% scale bundle will conflict the one from the x64 bundle.
"%WDK_PATH%\MakePri" createconfig /o /pv 10.0.0 /dq lang-en-US_scale-%DEFAULT_SCALE%_theme-light /cf ..\priconfig.xml "%WDK_PATH%\MakePri" createconfig /o /pv 10.0.0 /cf ..\priconfig.xml /dq %STUPID_MAKEPRI_LANGUAGES%_scale-%DEFAULT_SCALE%_theme-light
"%WDK_PATH%\MakePri" new /o /pr . /cf ..\priconfig.xml "%WDK_PATH%\MakePri" new /o /pr . /cf ..\priconfig.xml
del /q ..\priconfig.xml del /q ..\priconfig.xml
copy ..\RufusAppxManifest.xml %MANIFEST% >NUL 2>&1 copy ..\RufusAppxManifest.xml %MANIFEST% >NUL 2>&1
@ -118,7 +131,7 @@ for %%a in (%OTHER_SCALES%) do (
for %%i in (%SCALED_IMAGES%) do ( for %%i in (%SCALED_IMAGES%) do (
copy "..\Images\%%i.scale-%%a.png" Images\ >NUL 2>&1 copy "..\Images\%%i.scale-%%a.png" Images\ >NUL 2>&1
) )
"%WDK_PATH%\MakePri" createconfig /o /pv 10.0.0 /dq lang-en-US_scale-%%a_theme-light /cf ..\priconfig.xml "%WDK_PATH%\MakePri" createconfig /o /pv 10.0.0 /cf ..\priconfig.xml /dq %STUPID_MAKEPRI_LANGUAGES%_scale-%%a_theme-light
"%WDK_PATH%\MakePri" new /o /pr . /cf ..\priconfig.xml "%WDK_PATH%\MakePri" new /o /pr . /cf ..\priconfig.xml
del /q ..\priconfig.xml del /q ..\priconfig.xml
copy ..\ScaleAppxManifest.xml %MANIFEST% >NUL 2>&1 copy ..\ScaleAppxManifest.xml %MANIFEST% >NUL 2>&1

View File

@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG DIALOGEX 12, 12, 232, 326 IDD_DIALOG DIALOGEX 12, 12, 232, 326
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES EXSTYLE WS_EX_ACCEPTFILES
CAPTION "Rufus 3.20.1929" CAPTION "Rufus 3.20.1930"
FONT 9, "Segoe UI Symbol", 400, 0, 0x0 FONT 9, "Segoe UI Symbol", 400, 0, 0x0
BEGIN BEGIN
LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP LTEXT "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@ -395,8 +395,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 3,20,1929,0 FILEVERSION 3,20,1930,0
PRODUCTVERSION 3,20,1929,0 PRODUCTVERSION 3,20,1930,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -414,13 +414,13 @@ BEGIN
VALUE "Comments", "https://rufus.ie" VALUE "Comments", "https://rufus.ie"
VALUE "CompanyName", "Akeo Consulting" VALUE "CompanyName", "Akeo Consulting"
VALUE "FileDescription", "Rufus" VALUE "FileDescription", "Rufus"
VALUE "FileVersion", "3.20.1929" VALUE "FileVersion", "3.20.1930"
VALUE "InternalName", "Rufus" VALUE "InternalName", "Rufus"
VALUE "LegalCopyright", "© 2011-2022 Pete Batard (GPL v3)" VALUE "LegalCopyright", "© 2011-2022 Pete Batard (GPL v3)"
VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html" VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
VALUE "OriginalFilename", "rufus-3.20.exe" VALUE "OriginalFilename", "rufus-3.20.exe"
VALUE "ProductName", "Rufus" VALUE "ProductName", "Rufus"
VALUE "ProductVersion", "3.20.1929" VALUE "ProductVersion", "3.20.1930"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"