-
Notifications
You must be signed in to change notification settings - Fork 408
Description
Describe the bug
PackageDeploymentManager.RegisterPackageAsync() fails to execute while the WinRT counterpart PackageManager.RegisterPackageByFullNameAsync() succeeds.
The WASDK method returns withPackageDeploymentStatus.CompletedFailure, but empty Error/ErrorText/ExtendedError properties. The console (with native debugging enabled) shows:
Exception thrown at 0x00007FFF613A83EA (KernelBase.dll) in PackageManagerRegisterTest.exe: WinRT originate error - 0x800706BE : 'The remote procedure call failed.'.
Exception thrown at 0x00007FFF613A83EA (KernelBase.dll) in PackageManagerRegisterTest.exe: 0x000006BE: The remote procedure call failed.
onecore\admin\appmodel\packagemanager\client\Helpers.hpp(235)\AppXDeploymentClient.dll!00007FFF596B31C8: (caller: 00007FFF596B562C) LogHr(1) tid(739c) 800706BE The remote procedure call failed.
Exception thrown at 0x00007FFF613A83EA (KernelBase.dll) in PackageManagerRegisterTest.exe: WinRT originate error - 0x80070490 : 'Element not found.'.
The WinRT method succeeds and the package is registered and useable afterwards.
Steps to reproduce the bug
- Create a packaged app (e.g. WinUI 3)
- Stage a (signed, or self-signed in trusted certificate store) MSIX package:
var packageDeploymentManager = PackageDeploymentManager.GetDefault();
var options = new Microsoft.Windows.Management.Deployment.StagePackageOptions();
var uri = new Uri(@"C:\file_path_to_msix.msix");
var operation = packageDeploymentManager.StagePackageByUriAsync(uri, options);
var result = await operation;
- Register the package using full package name and WASDK:
var packageDeploymentManager = PackageDeploymentManager.GetDefault();
var options = new Microsoft.Windows.Management.Deployment.RegisterPackageOptions();
var operation = packageDeploymentManager.RegisterPackageAsync("MyPackage_1.0.0.123_x64__publisherid", options);
var result = await operation;
- Register the package using full package name and WinRT:
var packageManager = new PackageManager();
var operation = packageManager.RegisterPackageByFullNameAsync("MyPackage_1.0.0.123_x64__publisherid", [], DeploymentOptions.None);
var result = await operation;
- Verify the package was registered (e.g. see the app in start menu)
Expected behavior
RegisterPackageAsync() succeeds, same as the WinRT counterpart RegisterPackageByFullNameAsync().
Screenshots
No response
NuGet package version
Windows App SDK 1.6.1: 1.6.240923002
Packaging type
Packaged (MSIX)
Windows version
Windows 11 version 22H2 (22621, 2022 Update)
IDE
Visual Studio 2022
Additional context
No response