我使用VS2010创建了一个名为"TfsBuildTestTarget"的Win32 C++控制台应用程序。这只是向导创建的默认控制台应用程序。我没有进行任何代码或项目更改,并且在VS2010中按预期构建良好。
然后,我创建了一个MSBUILD项目文件,如下所示:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="TfsBuildTestTarget.sln" Targets="TfsBuildTestTarget" Properties="Configuration=Release;Platform=Win32"/>
</Target>
</Project>
当我在此项目文件上运行MSBUILD时,我会得到以下错误:
"c:\dev\TfsBuildTestTarget\testBuild.proj" (默认目标) (1 ) -> "c:\dev\TfsBuildTestTarget\TfsBuildTestTarget.sln" (TfsBuildTe stTarget 目标) (2) -> (TfsBuildTestTarget 目标) ->
c:\dev\TfsBuildTestTarget\TfsBuildTestTarget\TfsBuildTestTarget.vcxproj(3,14): 错误 MSB4066: 在元素中,属性"label"无法识别。
在(由VS生成的)vcxproj文件中引用的行如下:
<ItemGroup Label="ProjectConfigurations">
MSBuild item元素的参考文献中没有包含Label属性。
这是怎么回事?为什么VS2010生成的项目文件似乎与MSBuild不兼容?有没有办法在不手动调整XML的情况下将此解决方案作为MSBuild项目构建?