Я перенес свой код C ++ с VC 6 на VS 2010. Я устанавливаю параметры сборки для каждого проекта, но когда я пытаюсь их собрать, это выдает мне ошибку:
Error 101 error MSB4095: The item metadata %(RootDir) is being referenced without an item name. Specify the item name by using %(itemname.RootDir). C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets 806 6 IDLLib
на линии
<MakeDir Directories="@(CustomBuildDirsToMake->'%(RootDir)%(Directory))" />
Вся цель сборки выглядит так:
<Target Name="ComputeCustomBuildOutput" >
<ItemGroup >
<CustomBuildDirsToMake Include="%(CustomBuildStep.Outputs)" Condition="'%(CustomBuildStep.Command)' != ''"/>
<CustomBuildDirsToMake Include="%(CustomBuild.Outputs)" Condition="'@(CustomBuild)' != ''"/>
<Link Include="%(CustomBuildDirsToMake.Identity)" Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'"/>
<Lib Include="%(CustomBuildDirsToMake.Identity)" Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'"/>
<ImpLib Include="%(CustomBuildDirsToMake.Identity)" Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'"/>
</ItemGroup><MakeDir Directories="@(CustomBuildDirsToMake->'%(RootDir)%(Directory))" /> </Target>
Пожалуйста, помогите мне исправить ошибку!
Я проверил пользовательский каталог сборки в настройках проекта, но я не добавил ни одного в раздел выходных данных. Пользовательская командная строка сборки имеет следующую строку:
tao_idl.exe -Sci -hs _s.h -ss _s.cpp -si _s.i -hc _c.h -cs _c.cpp -ci _c.i -Cw -I..\..\idls %(Directory)
Остальные пользовательские поля сборки пусты. Я не могу решить эту проблему сам. Любая помощь будет оценена. Благодарю.
У меня похожая проблема, но я вижу это на линии:
@(CustomBuildDirsToMake->'%(RootDir)%(Directory))"
Похоже, вы пропустили последнее
например
@(CustomBuildDirsToMake->'%(RootDir)%(Directory)')"
(http://msdn.microsoft.com/en-us/library/ms171476.aspx)
Крис
Других решений пока нет …