2010-01-20 128 views
13

我在这里读了关于汇编,文件和汇编信息版本的线程。发布版本与大会(等)版本

我想知道在那里发布版本相符。结果...

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)

提前感谢!

Gregg

回答

18

我觉得不同的版本有不同的用途。

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

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

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

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

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

+0

Hi Dudu,谢谢你的明确解释。这很好地澄清了事情! – MrGreggles 2010-01-20 17:35:32

+1

有没有办法让他们自动匹配? – 2017-03-15 16:06:35