发布版本与程序集版本(等等)的区别

17

我在这里阅读了关于Assembly、File和Assembly Informational版本的帖子。

我想知道发布版本在哪里适用。下面是...

string thisAppsVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();

看起来是AssemblyVersion。到目前为止,我一直在使用发布版本与部署类:

ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
Version thisAppsVersion = deployment.CurrentVersion;

...但是除非应用程序已安装,否则此选项不可用。我喜欢它具有自动增加修订版本的选项。

是否有一种方法可以在没有网络部署的情况下获取发布版本?它应该是应用程序版本的“公共面孔”吗?

示例:UI版本(从发布版本扭曲)

提前感谢!

Gregg

1个回答

28

我认为各个版本具有不同的用途。

1)AssemblyVersion 用于CLR加载和绑定程序集。这对开发人员很有用,但不适用于最终用户。

2)FileVersion或AssemblyFileVersion 是Windows显示可执行文件版本的内容。它与同一Win32应用程序的版本相同。该版本用于确定系统和安装程序中哪一个版本更新。

3)PublishVersion 用于版本化部署包。可以将相同的二进制文件以不同的发布版本发布两次。

4)向最终用户显示的版本是另一个版本。称其为产品版本或其他名称。它可能与上述任何一个版本不同,例如出于业务目的。如果您想使用一些.NET内置支持,请查看AssemblyInformationalVersionAttribute

对于简单情况,您可以使用FileVersion作为产品版本。但是对我来说,发布版本不是一个好主意。


嗨 Dudu,感谢清晰的解释。这很好地澄清了事情! - MrGreggles
12
有没有一种自动让它们匹配的方式? - Kyle Delaney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接