2013-09-24 26 views
1

我正在的MSBuild項目功能計數不起作用

<ItemGroup> 
    <TestItem Include="ITEM_VALUE"/> 
    <TestItem Include="ITEM_VALUE2"/> 
    </ItemGroup> 
    <Target Name="test"> 
    <Message Text="@(TestItem->Count())"/> 
    </Target> 

期待看到 「2」 的結果

錯誤我得到相反:

Test.targets( 5,5):錯誤MSB4184:無法評估表達式「」ITEM_VALUE「.Count()」。未找到方法「System.String.Count」。

使用.NET 4.0

回答

4

您使用的版本的Visual Studio之前2012的MSBuild(Toolsversion 4.0),或調用與Visual Studio 2012/.NET 4.5的升級安裝的版本之前版本的MSBuild? Count項目功能是可用的開始使用MSBuild in Visual Studio 2012。如果您的Visual Studio/MSBuild版本較舊,您將無法調用該功能。

+0

我正在使用MsBuild 4.0,根據[MSDN](http://msdn.microsoft.com/en-us/library/ee886422.aspx)是添加項目函數的版本。 –

+1

如果你看看上面提供的MSDN鏈接,它顯示了從VS 2012開始的「計數」功能(MSBuild for VS 2012,.NET 4.5)。如果您查看[VS 2010](http://msdn.microsoft.com/en-us/library/ee886422(v = vs.100).aspx)(MSBuild for VS 2010,.NET 4.0)的鏈接,但是,您會注意到「計數」功能未包含在項目函數列表中。 – Michael

+0

你是對的,但最奇怪的是,我設法使用4.0和Visual Studio 2010在我的本地機器上工作。我認爲這取決於我的機器上安裝了.net 4.5,儘管我使用的是4.0版本運行它。有點奇怪買嘿。謝謝,至少現在我明白了 –