2013-09-24 4 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 MsBuild (Toolsversion 4,0)

ответ

4

Вы используете версию Visual Studio до 2012 года, или позвонив по версии MSBuild перед установленной с Visual Studio 2012/.NET 4.5 обновления? Функция пункта 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, представленную выше, она показывает функцию 'Count', доступную начиная с VS 2012 (MSBuild для VS 2012, .NET 4.5). Если вы посмотрите на ссылку для [VS 2010] (http://msdn.microsoft.com/en-us/library/ee886422 (v = vs.100) .aspx) (MSBuild для VS 2010, .NET 4.0), однако вы заметите, что функция «Count» не включена в список функций элемента. – Michael

+0

Вы абсолютно правы, но самое страшное в том, что мне удалось заставить его работать на моем локальном компьютере с использованием 4.0 и Visual Studio 2010. Я думаю, что на моей машине установлено приложение .net 4.5, хотя я использую версию 4.0 для запуска. Немного странная покупка, эй. спасибо, по крайней мере, сейчас я понимаю, что –