检查可选包是否存在。

4
我已经创建了一个UWP应用和一个UWP可选包。我使用这篇文档https://learn.microsoft.com/en-us/windows/uwp/packaging/optional-packages-with-executable-code设置好了所有内容。
一切都按预期工作,我可以使用可选包中的代码。但是,如果我删除可选包,我的代码将无法运行。我不希望我的应用程序在“可选”包未安装时崩溃。
有没有检查可选包是否已安装的公认方法?我只需捕获异常吗?那似乎有点繁琐。
例子:当我引用(在我的可选包中的)Class1时,它会抛出以下异常:

System.Runtime.InteropServices.COMException:“未注册类”(来自HRESULT的异常:0x80040154)

enter image description here

1个回答

3
什么是检查可选包是否已安装的接受方法?
您可以使用PackageCatalog类获取所有已安装的包。
List<string> optionalPackageList = new List<string>(); 
foreach (var package in Windows.ApplicationModel.Package.Current.Dependencies) 
{ 
    if (package.IsOptional) 
    { 
        optionalPackageList.Add(package.Id.FamilyName); 
    } 
} 

您可以检查optionalPackageList是否包含指定的可选包。更多信息请参考此文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接