如何获取WPF应用程序的发布版本
本文关键字:布版本 版本 WPF 何获取 获取 应用程序 | 更新日期: 2023-09-27 17:51:07
我想要我的WPF应用程序发布版本。我试着用这个问题的答案。它有效,但问题是我们可以手动更改那里的值。我想知道我的项目实际发布了多少次(不需要版本号。只需要我发布了我的应用程序多少次(。这能做到吗?
使用Click Once,每次发布时,Visual Studio都会自动更改数字。每次发布时,它都会增加值。您的问题是您手动更改了号码。解决方案是发布并让Visual Studio更新值。。。您应该注意到,您的项目需要在发布后保存。这是因为Visual Studio刚刚为您增加了值。
更新>>>
如果您想从代码访问已发布的版本(您应该在问题中明确表示(,那么您可以使用此代码,但必须确保应用程序首先在网络上部署。。。这意味着它实际上已经发布,所以在调试时它不会工作。试试这个:
private string GetPublishedVersion()
{
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.
CurrentVersion.ToString();
}
return "Not network deployed";
}
您可能会被两组数字弄糊涂。请注意,您可以在两个不同的地方设置WPF应用程序的版本:
- 项目属性/发布选项卡/发布版本
- 在AssemblyInfo.cs文件中声明的
AssemblyVersion
,如果在解决方案资源管理器中展开"项目属性"节点,可以找到该文件
它们的相似之处在于,它们都提供了4个编号:主要编号、次要编号、构建编号和修订编号。不同之处在于,只有当应用程序实际发布(即已安装(时,Publish Version
才可用。它在调试会话中不可用,如果您只是将可执行文件复制到另一台计算机并在那里运行它,它也不可用。所以,如果您只需要跟踪EXE文件的版本,请使用AssemblyInfo.cs.
相应地,要读取数据,请使用以下代码:
1阅读发布版本(在"发布"选项卡中声明(
using System.Deployment.Application;
ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
请注意,在这种情况下:a(您需要添加对System.Deployment
程序集的引用,b(如果没有部署应用程序,它将无法工作。
2要读取程序集版本(在AssemblyInfo.cs中声明(
Assembly.GetExecutingAssembly().GetName().Version;
这个总是有效的。
如果我们从非启动程序集获得应用程序版本,则通用解决方案:
var version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version;
string appVersion = $"{version.Major}.{version.Minor}";
GetEntryAssembly提供启动项目的版本。
var obj=Assembly.GetExecutingAssembly().GetName().Version;
string version= string.Format("Application Version {0}.{1}", obj.Build, obj.Revision);
OR
string version= string.Format("Application Version {0}.{1}", obj.Major, obj.Minor);
任何适合你的房产。