【问题标题】:Reflection: assembly get version giving wrong version value反射:程序集获取版本给出错误的版本值
【发布时间】:2012-04-25 06:51:27
【问题描述】:

我使用下面的代码在 windows GAC 文件夹中获取一组汇编的版本。

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

运行上述代码后,我手动右键单击并获取程序集的版本。 对于某些程序集productVersion 返回的版本与手动获取的值不同。 有什么可能的原因吗?

【问题讨论】:

  • 差异示例(预期与实际)会有所帮助...
  • 版本返回为 15.0.xxxx.10000 ,但实际版本为 15.0.yyyy.1000。当我安装了它的 xxxx 版本的应用程序,然后卸载它,然后安装该应用程序的 yyyy 版本时,就会发生这种情况。安装 yyyy 版本的应用程序后,所有 dll 都应该是 yyyy 版本。手动检查的时候就OK了。但这种不匹配发生在以编程方式检查版本时。
  • @David 看起来很相似,但不是我想要的。

标签: c# reflection assemblies


【解决方案1】:

对于程序集对象的文件版本,请使用:

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

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

【讨论】:

  • 这给出了 15.0.0.0 这不是我想要的结果。我想获得 15.0.yyyy.1000 的产品版本
  • 幸运的是,这就是我想要的 :)
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 2018-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多