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