发布版本与程序集(等)版本

Posted

技术标签:

【中文标题】发布版本与程序集(等)版本【英文标题】:Publish Version vs Assembly (etc) Versions 【发布时间】:2010-01-20 04:57:16 【问题描述】:

我在这里阅读了关于程序集、文件和程序集信息版本的主题。

我想知道 Publish 版本适合的位置。结果...

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

...似乎是 AssemblyVersion。到目前为止,我一直在使用带有部署类的发布版本:

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

...但除非安装了应用程序,否则此功能不可用。我喜欢它有自动增加修订的选项。

有没有办法在不进行网络部署的情况下获得发布版本?它应该是应用版本的“公众面孔”吗?

Example: UI Version (twisted from Publish Version)

提前致谢!

格雷格

【问题讨论】:

【参考方案1】:

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

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

2) FileVersion 或 AssemblyFileVersion 是 Windows 显示为可执行文件版本的内容。它与 Win32 应用程序的版本相同。系统和安装程序使用此版本来确定哪个版本较新。

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

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

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

【讨论】:

嗨 Dudu,感谢您的明确解释。这很好地澄清了事情! 有没有办法让它们自动匹配?

以上是关于发布版本与程序集(等)版本的主要内容,如果未能解决你的问题,请参考以下文章

DNX / .NET Core 程序集版本控制:4.0.0 与 4.0.10

MSVS 2010。如何为解决方案中的所有程序集分配相同的版本?

.NET 版本程序集是用(目标版本)编译的 [重复]

MVC4.0:未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配

如何跟踪程序集的多个版本?

程序集使用版本 X,其版本高于引用的程序集错误