如何获取WPF应用程序的发布版本

本文关键字:布版本 版本 WPF 何获取 获取 应用程序 | 更新日期: 2023-09-27 17:51:07

我想要我的WPF应用程序发布版本。我试着用这个问题的答案。它有效,但问题是我们可以手动更改那里的值。我想知道我的项目实际发布了多少次(不需要版本号。只需要我发布了我的应用程序多少次(。这能做到吗?

如何获取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应用程序的版本

  1. 项目属性/发布选项卡/发布版本
  2. 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); 

任何适合你的房产。