如何在Windows窗体上显示ClickOnce版本号
我有一个Windows窗体应用程序部署到两个不同的位置。
我为点击一次部署的版本ApplicationDeployment.IsNetworkDeployed
显示ClickOnce版本号。
if (ApplicationDeployment.IsNetworkDeployed)
return ApplicationDeployment.CurrentDeployment.CurrentVersion;
但对于非点击应用程序,我不知道如何检索clickonce版本,除非我在汇编信息中硬编码版本号。
是否有一种自动方式检索非Clickonce部署版本的ClickOnce版本号?
不,我不相信有一种方法。 我相信ClickOnce信息来自清单,只会在ClickOnce部署中提供。 我认为硬编码版本号是您的最佳选择。
将System.Deployment
的程序集引用添加到您的项目中。
在您的类文件中导入名称空间:
VB.NET:
Imports System.Deployment
C#:
using System.Deployment;
从CurrentVersion
属性中检索ClickOnce版本。
您可以从ApplicationDeployment.CurrentDeployment.CurrentVersion
属性获取当前版本。 这将返回一个System.Version
对象。
注意(来自MSDN):
如果已安装新更新但尚未调用Restart
则CurrentVersion
将与UpdatedVersion
不同。 如果部署清单配置为执行自动更新,则可以比较这两个值以确定是否应重新启动应用程序。
注: CurrentDeployment
静态属性仅在使用ClickOnce部署应用程序时才有效。 因此,在访问此属性之前,应首先检查ApplicationDeployment.IsNetworkDeployed
属性。 它总是会在调试环境中返回false。
VB.NET:
Dim myVersion as Version
If ApplicationDeployment.IsNetworkDeployed Then
myVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion
End If
C#:
Version myVersion;
if (ApplicationDeployment.IsNetworkDeployed)
myVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion;
使用Version
对象:
从这里开始,您可以在标签中使用版本信息,例如在“关于”表单上,以这种方式:
VB.NET:
versionLabel.Text = String.Concat("ClickOnce published Version: v", myVersion)
C#:
versionLabel.Text = string.Concat("ClickOnce published Version: v", myVersion);
( Version
对象被格式化为四部分编号(major.minor.build.revision)。)
每次推出新版本时,我都会简单地将主程序集的组装版本与CLickOnce版本相同。 然后,当它作为非clickonce应用程序运行时,只需使用Reflection即可获取程序集版本。
链接地址: http://www.djcxy.com/p/22719.html上一篇: How to display ClickOnce Version number on Windows Forms