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

Leo*_*rev 5 c# msbuild

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

我可以解析AssemblyInfo.cs,这里建议使用RegEx从AssemblyInfo文件读取AssemblyInformationalVersion值,但我不认为这是最佳解决方案.

Chr*_*n.K 1

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

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

在内部,这就是 C# 编译器AssemblyInformationalVersion.

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