MSBuild错误MSB4095:正在引用项目元数据%(RootDir)而没有项目名称

时间:2013-11-25 21:17:59

标签: c++ visual-studio-2010 msbuild msbuild-task

我将我的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)

其他自定义构建字段为空。我似乎无法自己解决这个问题。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但我看到了这一点:

@(CustomBuildDirsToMake->'%(RootDir)%(Directory))"

看起来你错过了最后一次'

e.g。

@(CustomBuildDirsToMake->'%(RootDir)%(Directory)')"

http://msdn.microsoft.com/en-us/library/ms171476.aspx

克里斯