Skip to content

Commit f78ba3d

Browse files
committed
Changes needed to install msix for all users, provided by ddomingos-encora on github
1 parent aad0c95 commit f78ba3d

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

Installer.cpp

+20-4
Original file line numberDiff line numberDiff line change
@@ -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,30 @@ 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+
235251
return S_OK;
236252
}
237253

@@ -251,7 +267,7 @@ HRESULT NppShell::Installer::UnregisterSparsePackage()
251267
}
252268

253269
winrt::hstring fullName = package.Id().FullName();
254-
auto deploymentOperation = packageManager.RemovePackageAsync(fullName, RemovalOptions::None);
270+
auto deploymentOperation = packageManager.RemovePackageAsync(fullName, RemovalOptions::RemoveForAllUsers);
255271
auto deployResult = deploymentOperation.get();
256272

257273
if (!SUCCEEDED(deployResult.ExtendedErrorCode()))

0 commit comments

Comments
 (0)