2012-12-12 9 views
6

MSBuild restituisce l'errore MSB4186 per l'istruzione $ ([MSBuild] :: Add ($ (OldRevision), 1)) '. Sto usando un esempio da here, ma non funziona per me:[MSBuild] :: Aggiungi errore di ritorno di chiamata 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`)) 

Ecco quello che sto cercando di eseguire:

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

Mi chiedo che cosa è tha sintassi corretta per it

ps sì, sto usando MSBuild 4.5

+0

Ho lo stesso problema. Penso che sia qualcosa a che fare con '$ (OldRevision)' trattato come una stringa. Il seguente funziona per me: '', ma non quando sostituisco 2 e 3 con le proprietà. – vegemite4me

risposta

1

Penso che tu abbia questa sintassi di proprietà giusta, non funziona solo in attività CreateProperty. La funzione CreateProperty è deprecata, ci sono pochissimi motivi per usarla.

Questa sintassi di proprietà semplice che funziona per me:

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

Anche questo funziona così (all'interno di qualsiasi destinazione):

<Message Text="OldVersion=$(OldVersion), NewVersion=$([MSBuild]::Add($(OldVersion), 1))" /> 
+0

Purtroppo non funziona neanche per me. Lo stesso errore. Quindi, sono semplicemente tornato al compito "Versione vecchia" –