检查是否存在可选软件包

时间:2018-06-27 14:51:55

标签: c# uwp

我创建了一个UWP应用和一个UWP可选软件包。我使用以下文档进行了全部设置:https://docs.microsoft.com/en-us/windows/uwp/packaging/optional-packages-with-executable-code

一切正常,我可以使用可选软件包中的代码。但是很明显,如果我删除可选软件包,我的代码将无法工作。如果未安装“可选”程序包,我不想让我的应用程序崩溃。

检查是否已安装可选软件包的可接受方式是什么?我是否只捕获异常?似乎有点不客气。


示例:当我引用Class1(在我的可选软件包中)时,它抛出此异常:

  

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

enter image description here

1 个答案:

答案 0 :(得分:1)

  

检查是否已安装可选软件包的可接受方式是什么?

您可以使用 {% if q == "" %} <div class="col-md-12" style="display:none"> {% else %} <div class="col-md-12"> {% endif %} 类来安装所有软件包。

PackageCatalog

您可以检查List<string> optionalPackageList = new List<string>(); foreach (var package in Windows.ApplicationModel.Package.Current.Dependencies) { if (package.IsOptional) { optionalPackageList.Add(package.Id.FamilyName); } } 是否包含指定的选项包。有关更多信息,请参阅此document