1

我正在尝试使用 msbuild 从 AssemblyInfo 文件中读取 AssemblyInformationalVersion,但到目前为止我失败了。下面是我的数字,但我需要在引号内输入整个内容:

<PropertyGroup>
  <Pattern>\[assembly: AssemblyInformationalVersion\(.(\d+)\.(\d+)\.(\d+)</Pattern>
  <In>@(ItemsFromFile)</In>
  <Out>$([System.Text.RegularExpressions.Regex]::Match($(In), $(Pattern)))</Out>
</PropertyGroup>

<Message Text="Output : $(Out.Remove(0, 41))"/>

例如,这是目标行:

[assembly: AssemblyInformationalVersion("0.3.0-pre01")]

任何想法?

4

1 回答 1

1

如果您只需要引号的内容,您应该可以使用如下表达式来获取它:

(?<=\[assembly: AssemblyInformationalVersion\(").*(?="\)\])

我认为您可以在 msbuild 正则表达式中使用积极的前瞻/后视。

分别为正前瞻和后视:

Match this(?=Where this is present ) (?<=Where this is present )Match this

于 2012-12-28T17:59:00.240 回答