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

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

Stack Overflow用户
提问于 2022-05-11 13: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 05:17:47

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

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

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

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

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

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

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

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

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

https://stackoverflow.com/questions/72207970

复制
相关文章
使用.NET Core 构建现代化的桌面应用
我们今天要聊的内容主要桌面开发四个方面:Windows平台、.NET Core 3 平台上的WPF,Winform, 应用打包解决方案 MSIX 和 XAML 群岛访问原来UWP的控件,让我们的应用程序迅速现代化。
张善友
2020/06/19
2.3K0
【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性
自Visual Studio 2019推出以来,我们为使用WPF或UWP桌面应用程序的XAML开发人员发布了许多新功能。在本周的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我们希望借此机会回顾一下全年的新变化。如果您错过了我们以前的版本,或者只是没有机会赶上,那么此博客文章将是您可以看到我们在整个2019年所做的每项重大改进的地方。
郑子铭
2021/01/13
7.4K0
【译】Visual Studio 2019 中 WPF & UWP 的 XAML 开发工具新特性
dotnet 从入门到放弃的 500 篇文章合集
博客包括 C#、WPF、UWP、dotnet core 、git 和 VisualStudio 和一些算法,所有博客使用 docx 保存
林德熙
2018/09/19
10.5K0
dotnet 从入门到放弃的 500 篇文章合集
WPF 引用 UWP 控件 不打包为 MSIX 分发的方法
按照微软的官方文档,大部分的文档都会说如果用了 XAML Islands 等技术的时候,需要新建一个打包项目,将 WPF 应用打包为 msix 等才可以进行分发和使用。但是实际上不打包也可以,此时可以和此前的 Win32 应用一样的分发方式进行分发,可以支持到 Win7 系统,当然了在 Win7 系统上可用不了 UWP 的控件,但是至少应用软件自身可以在 Win7 继续运行的。可以通过判断系统版本决定功能是否开放,如是 Win10 版本,那么开放 UWP 控件部分的使用
林德熙
2021/12/23
7620
【译】基于XAML的跨平台框架对比分析
多年来,基于XAML的UI框架已经有了很大的发展。下面的图表是最好的说明。这些框架主要包含:支持跨平台应用的Avalonia UI, Uno Platform和 .NET MAUI。事实上,除了Avalonia UI之外,对跨平台XAML的需求是其发展的主要驱动力。如果微软早点推出一个类似Flutter这样的跨平台UI框架,我们可能就不会有这个么多的选择。这样有利有弊:好处在于我们选择有很多跨平台方案可以选择,坏处在于不同的框架有不同的对象模型以及各自的特有的XAML语法(dialect of XAML)。 在关注各种 .NET UI 框架时,我们会提出同一个问题:应该使用哪一个XAML UI框架来开发我们的应用?这是一个合理且重要的问题。迄今为止还没有一个明确的答案。但是,对于每个具体的应用,这个问题很容易回答,因为可以针对特定的应用需求比较分析每一种框架的优点和缺点。通过概述基于 XAML 的主要 UI 框架的优点和缺点,本文档旨在帮助公司和开发人员回答以下问题:
czwy
2023/10/22
1.2K0
【译】基于XAML的跨平台框架对比分析
.NET Core 3和对Windows桌面应用程序的支持
在今天的微软Build Live大会上,微软.Net Core团队公开了.net Core3的开发计划的预览。.Net Core 3 的亮点是支持Windows桌面应用程序,特别是Windows窗体、Windows Presentation Framework (WPF)和UWP XAML。您将能够在. net Core上运行新的和现有的Windows桌面应用程序,并能享受.Net Core提供的所有好处。
程序你好
2018/07/23
2.2K0
WinUI 3 试玩报告
在微软 Build 2020 开发者大会上,WinUI 团队宣布可公开预览的 WinUI 3 Preview 1,它让开发人员可以在 Win32 中使用 WinUI。WinUI 3 Preview 1 包含新的 VisualStudio 项目模板,可以创建面向 .NET 5 的 C# 和 C++/Win32 项目。从技术上讲,WinUI 3 将 UWP 的 XAML、Composition 和 Input 层分离,并通过NuGet将它们独立分发给针对Windows 10 版本 1803 及更高版本的 Win32 应用。
dino.c
2020/06/08
3.1K0
WinUI 3 试玩报告
UWP 打包 win32 应用 添加防火墙例外
我想要将一个 WPF 应用打包为 UWP 应用,然后用我自己的商店发布,在做 UWP 安装包的小伙伴会问如何和 nsis 一样添加防火墙例外
林德熙
2020/02/18
9270
WPF 如何在应用程序调试启动
如果在一些无法使用源代码编译的电脑,调试一个exe无法启动,那么需要使用本文的技术。
林德熙
2019/03/13
8880
WPF 如何在应用程序调试启动
WPF 如何在应用程序调试启动
如果在一些无法使用源代码编译的电脑,调试一个exe无法启动,那么需要使用本文的技术。
林德熙
2018/09/19
1.1K0
WPF 如何在应用程序调试启动
WPF 如何在应用程序调试启动
如果在一些无法使用源代码编译的电脑,调试一个exe无法启动,那么需要使用本文的技术。
林德熙
2022/08/04
8770
签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP
发布于 2018-06-24 06:39 更新于 2018-08-03 23:09
walterlv
2018/09/18
1.9K0
签署 Centennial Program Addendum,使用 Desktop Bridge 将 Win32 应用转制成 UWP
通俗易懂,什么是.NET Core以及.NET Core能做什么
我们都知道.NET Core是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,.NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏和物联网应用程序。与其他框架不同,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。
依乐祝
2019/05/19
4K0
通俗易懂,什么是.NET Core以及.NET Core能做什么
.net core 3.0就要来了
在前几天的微软 Build 2018 开发者大会上,.NET 团队发布了 .NET Core 的下一个主要版本 3.0 的规划蓝图。.Net Core 3 的首个预览版预计在今年晚些时候发布,正式版本将在 2019 年发布。
Bug生活2048
2018/08/31
1.2K0
.net core 3.0就要来了
通俗易懂,什么是.NET Core以及.NET Core能做什么
我们都知道.NET Core是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。与其他软件框架不同,.NET Core是最通用的框架,可用于构建各种软件,包括Web应用程序、移动应用程序、桌面应用程序、云服务、微服务、API、游戏和物联网应用程序。与其他框架不同,.NET Core并不局限于单一的编程语言,它支持C#、VB.NET、F#、XAML和TypeScript。这些编程语言都是开源的,由独立的社区管理。
寒树Office与RPA
2019/11/28
2.6K0
WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能笔迹应用
本文告诉大家如何在 WPF 中应用上 UWP 的笔迹控件,从而实现性能超级高的笔迹应用的方法
林德熙
2021/12/23
1.2K0
【荐】牛逼的WPF动画库:XamlFlair
XamlFlair库的目标是简化常见动画的实现,并允许开发人员使用几行Xaml轻松地添加单个或组合的动画集。
沙漠尽头的狼
2021/12/01
2.1K0
【荐】牛逼的WPF动画库:XamlFlair
程序员需要了解的.NET Framework 编程的好与坏
.NET 是一个由 Microsoft 设计和支持的软件开发框架和生态系统,可实现轻便的桌面和 Web 应用程序工程。它是一个流行的免费平台,目前用于许多不同类型的应用程序,因为它为大多数软件开发阶段提供了编程环境。.NET 最适合寻求广泛功能的企业,例如基于 Web 的服务、桌面软件和云基础架构支持。
51Aspx
2022/01/06
1.9K0
程序员需要了解的.NET Framework 编程的好与坏
.NET 架构组件
.NET 应用程序是为 .NET 的一个或多个实现开发并在其中运行的。.NET 的实现包括 .NET Framework、.NET 5(和 .NET Core)和 Mono。.NET 的多个实现有一个通用的 API 规范,称为 .NET Standard。本文简要介绍了这些概念中的每一个。 .NET 标准 .NET Standard 是一组由 .NET 实现的基类库实现的 API。更正式地说,它是 .NET API 的规范,它构成了您编译代码所依据的统一契约集。这些契约在多个 .NET 实现中实现。 .NET Standard 是一个目标框架。如果您的代码以 .NET Standard 版本为目标,则它可以在支持该 .NET Standard 版本的任何 .NET 实现上运行。 .NET Standard 的创建是为了在不同的 .NET 实现之间实现可移植性,但现在 .NET 5 提供了一种更好的方式来跨多个平台和工作负载共享代码。有关详细信息,请参阅.NET 5 和 .NET Standard。 .NET 实现 .NET 的每个实现都包括以下组件: 一个或多个运行时。示例:.NET Framework CLR、.NET 5 CLR。 一个类库。示例:.NET Framework 基类库、.NET 5 基类库。 可选地,一个或多个应用程序框架。示例:ASP.NET、Windows Forms和Windows Presentation Foundation (WPF)包含在 .NET Framework 和 .NET 5 中。 可选的,开发工具。一些开发工具在多个实现之间共享。 Microsoft 支持四种 .NET 实现: .NET 5(和 .NET Core)及更高版本 .NET 框架 单核细胞增多症 UWP .NET 5 现在是主要实现,也是持续开发的重点。.NET 5 基于单一代码库构建,该代码库支持多个平台和许多工作负载,例如 Windows 桌面应用程序和跨平台控制台应用程序、云服务和网站。 .NET 5 .NET 5 是 .NET 的跨平台实现,旨在大规模处理服务器和云工作负载。它还支持其他工作负载,包括桌面应用程序。它在 Windows、macOS 和 Linux 上运行。它实现了 .NET Standard,因此面向 .NET Standard 的代码可以在 .NET 5 上运行。ASP.NET Core、Windows Forms和Windows Presentation Foundation (WPF)都可以在 .NET 5 上运行。 有关更多信息,请参阅以下资源: .NET介绍 在 .NET 5 和 .NET Framework 之间为服务器应用选择 .NET 5 和 .NET 标准 .NET 框架 .NET Framework 是自 2002 年以来一直存在的原始 .NET 实现。4.5 版及更高版本实现了 .NET Standard,因此面向 .NET Standard 的代码可以在这些版本的 .NET Framework 上运行。它包含其他特定于 Windows 的 API,例如用于使用 Windows 窗体和 WPF 进行 Windows 桌面开发的 API。.NET Framework 已针对构建 Windows 桌面应用程序进行了优化。 有关详细信息,请参阅.NET Framework 指南。 单核细胞增多症 Mono 是一种 .NET 实现,主要用于需要小型运行时。它是为 Android、macOS、iOS、tvOS 和 watchOS 上的 Xamarin 应用程序提供支持的运行时,并且主要专注于小空间。Mono 还支持使用 Unity 引擎构建的游戏。 它支持所有当前发布的 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 的更大 API,并在 Unix 上模拟了一些最流行的功能。它有时用于在 Unix 上运行依赖于这些功能的 .NET 应用程序。 Mono 通常与即时编译器一起使用,但它也具有在 iOS 等平台上使用的完整静态编译器(提前编译)。 有关更多信息,请参阅Mono 文档。 通用 Windows 平台 (UWP) UWP 是 .NET 的一种实现,用于为物联网 (IoT) 构建现代的、支持触控的 Windows 应用程序和软件。它旨在统一您可能想要定位的不同类型的设备,包括 PC、平板电脑、手机,甚至 Xbox。UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。应用程序可以用 C++、C#、Visual Basic 和 JavaScript 编写。 有关详细信息,请参阅通用 Win
呆呆
2022/01/04
9090
微软的混合开发解决方案 WebView2
我们都知道对于桌面应用开发来说,人们常用的方式就是采用c++或者c#,java等进行开发,然而这些语言开发效率不够高,不如网页开发灵活。因此,人们思考能否采用html+css+js的方式来开发桌面客户端呢,于是人们就提出了混合开发概念,并且开发了electron框架进行桌面开发。
程序那些事儿
2023/03/07
1.9K0
微软的混合开发解决方案 WebView2

相似问题

WPF应用程序的UWP打包项目是"SelfContained“吗?

11

是否可以使用Windows应用程序打包项目来打包两个UWP应用程序?

11

Visual Studio 15中的UWP Windows应用程序打包项目

10

Windows应用程序打包项目

120

如何从Windows tablet UWP应用程序使用数据库?

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文