2012-12-12 10 views
6

silnika MSBuild zwraca błąd MSB4186 dla '$ ([MSBuild] :: Dodaj ($ (OldRevision), 1))' oświadczenie. używam przykład z here, ale to nie działa dla mnie:[MSBuild] :: Dodaj wywołanie zwraca błąd 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`)) 

Oto co próbuję wykonać:

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

Zastanawiam się, co jest tha Prawidłowa składnia to

ps Tak, używam MSBuild 4.5

+0

mam ten sam problem. Myślę, że ma to coś wspólnego z '$ (OldRevision)' traktowanym jak ciąg. Następujące działa dla mnie: '', ale nie wtedy, gdy zastępuję 2 i 3 właściwościami. – vegemite4me

Odpowiedz

1

Chyba masz to prawo składni nieruchomość, to po prostu nie działa w zadaniu CreateProperty. Funkcja CreateProperty jest przestarzała, istnieje bardzo niewiele powodów, aby z niej skorzystać.

To prostsze składni właściwość działa na mnie:

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

Również ten działa tak samo (wewnątrz każdej tarczy):

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

Niestety to też nie działa dla mnie. Taki sam błąd. Po prostu wróciłem do zadania "stara dobra" wersja –

Powiązane problemy