在MSBuild中从汇编中获取AssemblyInformationalVersion的正确方法是什么?

时间:2017-07-20 10:28:58

标签: c# msbuild

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

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

1 个答案:

答案 0 :(得分:1)

如果您想从实际的汇编二进制文件中读取AssemblyInformationVersion值,那么您的问题(正如当前编写的那样)表明情况就是这样(暗示GetAssemblyIdentity - 任务)。

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

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

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