反射:汇编获取版本给出错误的版本值

问题描述:

我使用休耕代码来获取Windows GAC文件夹中一组汇编的版本。反射:汇编获取版本给出错误的版本值

FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); 
       string productVersion = fvi.ProductVersion; 

运行上述代码之后,我mannualy RightClick并获取程序集版本。 productVersion返回的版本与手动获取的值不同,部分程序集。 任何可能的原因?

+0

你检查吗? http://*.com/questions/5460199/fileversioninfo-fileversion-returns-productversion – 2012-04-25 06:56:19

+0

一个差异的例子(预期与实际)将有所帮助... – 2012-04-25 07:02:13

+0

版本返回是15.0.xxxx.10000,但实际版本是15.0 .yyyy.1000。当我安装了它的xxxx版本的应用程序,然后取消安装它,然后安装该应用程序的yyyy版本时,会发生这种情况。安装应用程序的yyyy版本后,所有的dll都应该是yyyy版本。手动检查时确定。但是,这种不匹配发生在编程检查版本时。 – 2012-04-25 08:49:03

对于装配对象使用的文件版本:

var assembly = System.Reflection.Assembly.GetExecutingAssembly(); // the current assembly 

var version = assembly.GetName().Version.ToString(); 
+0

这给出了结果15.0.0.0这不是我想要的。我想要的产品版本是15.0.yyyy.1000 – 2012-04-25 09:14:35

+0

幸运的是,这是我想要的:) – JDPeckham 2012-09-22 16:22:45