Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查可选包是否存在_C#_Uwp - Fatal编程技术网

C# 检查可选包是否存在

C# 检查可选包是否存在,c#,uwp,C#,Uwp,我已经创建了一个UWP应用程序和一个UWP可选包。我使用以下文档完成了所有设置: 一切正常,我可以使用可选包中的代码。但是很明显,如果我删除可选包,我的代码将无法工作。如果没有安装“可选”软件包,我不想让我的应用程序崩溃 检查是否安装了可选软件包的公认方法是什么?我是否只捕获异常?这似乎有点老套 示例:当我引用Class1(在我的可选包中)时,它抛出以下异常: System.Runtime.InteropServices.COMException:'未注册类 (HRESULT的例外:0x800

我已经创建了一个UWP应用程序和一个UWP可选包。我使用以下文档完成了所有设置:

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

检查是否安装了可选软件包的公认方法是什么?我是否只捕获异常?这似乎有点老套


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

System.Runtime.InteropServices.COMException:'未注册类 (HRESULT的例外:0x80040154)'

检查是否安装了可选软件包的公认方法是什么

您可以使用
PackageCatalog
类安装所有软件包

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