6

MSBuild 引擎为 '$([MSBuild]::Add($(OldRevision), 1))' 语句返回错误 MSB4186。我正在使用此处的示例,但它对我不起作用:

error MSB4186: Invalid static method invocation syntax:
"[MSBuild]::Add($(OldRevision), 1)". Input string was not in a correct format.
Static method invocation should be of the form: $([FullTypeName]::Method()),
e.g. $([System.IO.Path]::Combine(`a`, `b`))

这是我要执行的操作:

<CreateProperty Value="$([MSBuild]::Add($(OldRevision), 1))">
  <Output
      TaskParameter="Value"
      PropertyName="NewRevision" />
</CreateProperty>

我想知道它的正确语法是什么

ps 是的,我使用的是 MSBuild 4.5

4

1 回答 1

1

我认为你的这个属性语法是正确的,它只是在 CreateProperty 任务中不起作用。CreateProperty 函数已被弃用,使用它的理由很少。

这种更简单的属性语法对我有用:

<PropertyGroup>
    <NewVersion>$([MSBuild]::Add($(OldVersion), 1))</NewVersion>
</PropertyGroup>

这也有效(在任何目标内):

<Message Text="OldVersion=$(OldVersion), NewVersion=$([MSBuild]::Add($(OldVersion), 1))" />
于 2012-12-13T01:14:08.637 回答