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

时间:2010-01-20 04:57:17

标签: .net wpf versioning 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 个答案:

答案 0 :(得分:21)

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

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

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

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

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

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