根据文档我可以使用这个:
Windows.ApplicationModel.AppDisplayInfo.DisplayName
但是我收到错误:
An object reference is required for the non-static field, method, or property 'AppDisplayInfo.DisplayName
我无法添加“AppDiagnostics”功能或使用包显示名称,这似乎是最常见的解决方案。是文档错误还是我做错了什么?
如果有人需要 WinUI 3
Windows.ApplicationModel.Package.Current.DisplayName
如果您只想要当前项目的
DisplayName
,您可以使用以下代码,无需声明 appDiagnostics
功能:
string displayName = Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName;
如果您想要所有正在运行的应用程序(包括UWP应用程序、Win32应用程序、系统服务等)的
DisplayName
,您需要先在清单中添加appDiagnostics
功能。
检查添加
appDiagnostics
功能的步骤:
xmlns:rescap
中添加Package
,在rescap
中添加IgnorableNamespaces
。然后,在 appDiagnostics
中添加 Capabilities
功能。 <Package xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">
<Capabilities>
<rescap:Capability Name="appDiagnostics" />
</Capabilities>
</Package>
appDiagnostics
能力是受限能力,需要获得用户的许可。首次调用AppDiagnosticInfo.RequestInfoAsync()
等诊断API时,将触发用户同意提示。或者用户可以打开设置面板,找到隐私选项并设置应用程序诊断。请注意,如果用户拒绝权限,则 API 将仅返回有关当前应用程序的信息。
DisplayName
。var list = await AppDiagnosticInfo.RequestInfoAsync();
foreach (var info in list)
{
string name = info.AppInfo.DisplayInfo.DisplayName;
}
要在打包应用程序中获取“应用程序>显示名称”,只需使用
Windows.ApplicationModel.AppInfo.Current.DisplayInfo.DisplayName
您还可以通过以下方式获取“应用程序>说明”:
Windows.ApplicationModel.AppInfo.Current.DisplayInfo.Description
获取包信息,例如:包名称、包显示名称、版本、发布者。使用以下静态类:
Windows.ApplicationModel.Package