【问题标题】:What is correct way to get AssemblyInformationalVersion from assembly in MSBuild?从 MSBuild 中的程序集获取 AssemblyInformationalVersion 的正确方法是什么?
【发布时间】:2017-07-20 10:28:58
【问题描述】:

GetAssemblyIdentity 任务似乎只返回了 AssemblyVersion,而不是 AssemblyInformationalVersion。

我可以按照Reading AssemblyInformationalVersion value from AssemblyInfo file with RegEx 的建议解析 AssemblyInfo.cs,但我认为这不是最佳解决方案。

【问题讨论】:

  • 对吗?取决于您的用例。您的问题是从汇编中读取,您提供的链接从 AssemblyInfo.cs 中读取。你的意图是什么?
  • 我的意图是阅读大会。我不认为用 RegExp 解析某些东西是最佳解决方案
  • 明确一点:您想从二进制程序集文件还是从 AssemblyInfo.cs 源文件中读取 AssemblyInformationalVersion?您的问题表明两者都可能是这种情况。

标签: c# msbuild


【解决方案1】:

如果您想从实际的程序集二进制文件中读取 AssemblyInformationVersion 值,您的问题(正如它当前所写的那样)表明是这种情况(提示 GetAssemblyIdentity-task)。

如果是这样,只需使用FileVersionInfo.GetVersionInfo 并阅读ProductVersion 属性。要从 MSBuild 内部调用它,您可能需要一个小的自定义任务,它就是这样做的。

在内部,这就是 C# 编译器turns the AssemblyInformationalVersion into

如果您需要解析源代码(例如AssemblyInfo.cs)的值(这是完全不同的事情!)并且您链接到的正则表达式方法对于您的目的不够通用,您将不得不求助于使用 Roslyn,或者其他一些真正理解 C# 并且可以正确解析源代码的技术。

【讨论】:

    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 2021-04-08
    • 2014-07-04
    • 2014-03-27
    • 2012-03-21
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    相关资源
    最近更新 更多