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

Raj*_*123 13 c# wpf clickonce

我想要我的WPF应用程序发布版本.我尝试使用这个问题的答案.它可以工作,但问题是我们可以手动更改那里的值.我想知道我的项目实际发布了多少次(不需要版本号.我发布了多少次我的应用程序).可以这样做吗?

She*_*dan 12

使用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";
}
Run Code Online (Sandbox Code Playgroud)

  • 注意:这需要对System.Deployment程序集的引用. (7认同)

Mik*_*nov 7

您可能会被2组数字搞糊涂.请注意,您可以在两个不同的位置设置WPF应用程序的版本:

  1. 项目属性/发布选项卡/ 发布版本
  2. AssemblyVersionAssemblyInfo.cs文件中声明,如果在解决方案资源管理器中展开"项目属性"节点,则可以找到该文件.

它们的相似之处在于它们都提供4个数字:主要,次要,构建和修订.不同的是,Publish Version唯一可用的,如果应用程序实际上已发布(即安装).它在您的调试会话中不可用,也不是您只是将可执行文件复制到另一台计算机并在那里运行它.因此,如果您只需要跟踪EXE文件的版本,请使用AssemblyInfo.cs.

相应地,要读取数据使用以下代码:


1阅读发布版本(在"发布"选项卡中声明)

using System.Deployment.Application;
ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
Run Code Online (Sandbox Code Playgroud)

请注意,在这种情况下:a)您需要添加对System.Deployment程序集的引用,b)如果未部署应用程序,它将无法工作.


2阅读程序集版本(在AssemblyInfo.cs中声明)

Assembly.GetExecutingAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)

这个总是有效的.