首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用UWP Windows.ApplicationModel.Package或其他库从Windows应用程序打包项目访问本地WPF应用程序版本?

如何使用UWP Windows.ApplicationModel.Package或其他库从Windows应用程序打包项目访问本地WPF应用程序版本?
EN

Stack Overflow用户
提问于 2022-05-11 21:49:19
回答 1查看 204关注 0票数 1

我有一个内部WPF应用程序(.NET Framework4.8),该应用程序最近被更改为使用。使用侧加载和自动更新(正在运行)。这是所有的设置和工作良好;证书已安装,应用程序正确部署,并自动更新。

我现在想做的是更新我们当前显示的版本号。最初,我们通过ClickOnce进行部署,并使用ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()获取版本号。

我一直在为如何用新的部署战略来完成这一任务而奋斗。

据我所知,为了使用Windows.ApplicationModel类,我需要使用Package。但对于我的生活,我不知道如何把这个包到我的WPF应用程序(确切地说,是MainWindow.xaml.cs )。我需要与这里相同的代码。

我目前尝试的是:

我已经到了可以在应用程序中没有错误地拥有一个using Windows.ApplicationModel的地步,但是我仍然不能访问Package类。

我需要完成的唯一事情是让版本号显示在页脚栏中,并知道是否有新版本,这样我们就可以提示用户重新启动应用程序。我们不需要任何其他的UWP/WinRT库。我们有一些元素的软件,有昂贵的影响现实世界,不希望一个沉默的更新。人们通常会打开软件,而不是一整天都关闭它。然后,大多数用户可以在不知道修复或改进的情况下运行该软件。

最后的方法是手动查询和解析部署位置,检查新版本,但我仍然不确定如何获得本地应用程序版本。

我阅读的大部分资源都是2年以上的,而且随着桌面桥接器和其他与UWP的部署相关元素的交互,情况似乎发生了很大变化。我觉得有些东西已经改变到足以引起所有这些头痛,或者我完全错过了一些愚蠢的东西,这都是我。我也没有使用UWP的经验,所以有些文档有点神秘。

出于与我们使用的证书和某些库相关的相当重要的原因,我们需要更改此部署策略。用ClickOnce维护部署会比当前解决这个问题更麻烦。

有人知道如何检索通过Windows应用程序打包项目部署的WPF应用程序的版本号吗?

EN

回答 1

Stack Overflow用户

发布于 2022-05-12 13:17:47

如果WPF应用程序的目标是比.NET 5更早的版本,包括.NET Framework的所有版本,则应该将Microsoft.Windows.SDK.Contracts NuGet包安装到WPF应用程序项目中。

然后,假设您运行打包项目(而不是直接运行未打包的WPF应用程序),您可以使用Windows.ApplicationModel.Package属性:

代码语言:javascript
代码运行次数:0
运行
复制
var version = Windows.ApplicationModel.Package.Current.Id.Version;

还要确保打包项目的目标版本是Windows 10、版本1803或更高版本。

如果您的目标是.NET 5或更高版本的,则不应该安装Microsoft.Windows.SDK.Contracts包。相反,您应该将WPF应用程序项目的<TargetFramework>项目文件中的.csproj元素的值更改为特定于Windows版本的TFM:

代码语言:javascript
代码运行次数:0
运行
复制
<TargetFramework>net5.0-windows10.0.17763.0</TargetFramework>

然后,您可以像以前一样使用Package属性。

有关如何在桌面应用程序中调用文档 API的更多信息,请参考WinRT。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72207970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档