@@ -186,7 +186,7 @@ Package GetSparsePackage()
186186
187187 try
188188 {
189- packages = packageManager.FindPackagesForUser ( L" " );
189+ packages = packageManager.FindPackages ( );
190190 }
191191 catch (winrt::hresult_error)
192192 {
@@ -214,7 +214,7 @@ HRESULT NppShell::Installer::RegisterSparsePackage()
214214 }
215215
216216 PackageManager packageManager;
217- AddPackageOptions options;
217+ StagePackageOptions options;
218218
219219 const wstring externalLocation = GetContextMenuPath ();
220220 const wstring sparsePkgPath = externalLocation + L" \\ NppShell.msix" ;
@@ -224,14 +224,32 @@ HRESULT NppShell::Installer::RegisterSparsePackage()
224224
225225 options.ExternalLocationUri (externalUri);
226226
227- auto deploymentOperation = packageManager.AddPackageByUriAsync (packageUri, options);
227+ auto deploymentOperation = packageManager.StagePackageByUriAsync (packageUri, options);
228228 auto deployResult = deploymentOperation.get ();
229229
230230 if (!SUCCEEDED (deployResult.ExtendedErrorCode ()))
231231 {
232232 return deployResult.ExtendedErrorCode ();
233233 }
234234
235+ Package package = GetSparsePackage ();
236+ if (package == NULL )
237+ {
238+ return S_FALSE;
239+ }
240+
241+ winrt::hstring familyName = package.Id ().FamilyName ();
242+
243+ deploymentOperation = packageManager.ProvisionPackageForAllUsersAsync (familyName);
244+ deployResult = deploymentOperation.get ();
245+
246+ if (!SUCCEEDED (deployResult.ExtendedErrorCode ()))
247+ {
248+ return deployResult.ExtendedErrorCode ();
249+ }
250+
251+ SHChangeNotify (SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0 , 0 );
252+
235253 return S_OK;
236254}
237255
@@ -251,7 +269,7 @@ HRESULT NppShell::Installer::UnregisterSparsePackage()
251269 }
252270
253271 winrt::hstring fullName = package.Id ().FullName ();
254- auto deploymentOperation = packageManager.RemovePackageAsync (fullName, RemovalOptions::None );
272+ auto deploymentOperation = packageManager.RemovePackageAsync (fullName, RemovalOptions::RemoveForAllUsers );
255273 auto deployResult = deploymentOperation.get ();
256274
257275 if (!SUCCEEDED (deployResult.ExtendedErrorCode ()))
0 commit comments