在.NET Core 8.0 WPF项目中使用含Store API的.NET Standard 2.0库遇异常
.NET Standard 2.0类库在.NET 8 WPF打包项目中调用Store API抛出PlatformNotSupportedException
我们有一个基于.NET Standard 2.0的类库,大量使用Store API及插件功能,目前可在WPF(.NET Framework 4.8)和UWP项目中正常复用,但在.NET 8.0的WPF项目中无法正常使用该类库。
项目结构与问题重现
ClassLibrarydotnetStandard2(.NET Standard 2.0类库)
- 引用
Microsoft.Windows.SDK.ContractsNuGet包(版本10.0.22621.2428) - 包含调用
Windows.ApplicationModel.Package.Current的方法:public string LibraryFunctionToGetPackageName() - 还包含其他Store API相关函数
xWpfApp1(.NET Framework 4.8 WPF项目)
- 引用ClassLibrarydotnetStandard2类库,调用代码:
var s = c.LibraryFunctionToGetPackageName(); - 不可直接运行xWpfApp1,需运行对应的打包项目
xWpfApp1_Package - 运行打包项目后点击按钮#1,可成功执行库函数,无异常
WpfAppdotnet8(.NET 8 WPF项目)
- 引用相同的ClassLibrarydotnetStandard2类库,调用代码:
this.Title = c.LibraryFunctionToGetPackageName(); - 不可直接运行WpfAppdotnet8,需运行对应的打包项目
WPFdotnet8_PackageToPublishToStore - 运行打包项目后点击按钮#1,触发System.PlatformNotSupportedException异常
需求目标
实现该.NET Standard 2.0类库在以下项目中正常复用,并支持发布至应用商店:
- WPF(.NET Framework 4.8)
- UWP
- WPF(.NET 8.0)
注意:调试时必须运行打包项目,不可直接运行WPF项目本身。
内容的提问来源于stack exchange,提问作者Team Freytag
相关产品推荐
相关产品推荐

