gpt4 book ai didi

visual-studio-2010 - 使用 MSBuild 与 VS2010 生成的 vcxproj 文件作为目标 - 错误 MSB4066 ("attribute Label in element is unrecognized")

转载 作者:行者123 更新时间:2023-12-03 23:07:51 29 4
gpt4 key购买 nike

使用 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" (default target) (1 ) -> "c:\dev\TfsBuildTestTarget\TfsBuildTestTarget.sln" (TfsBuildTe stTarget target) (2) -> (TfsBuildTestTarget target) ->
c:\dev\TfsBuildTestTarget\TfsBuildTestTarget\TfsBuildTestTarget.vcxproj(3,14): error MSB4066: The attribute "Label" in element is unrecognized.



(VS 生成的)vcxproj 文件中的引用行如下所示:
  <ItemGroup Label="ProjectConfigurations">

reference for the MSBuild item element不包括标签属性。

这里发生了什么?为什么 VS2010 生成的项目文件似乎与 MSBuild 不兼容?有没有办法让我在不手动调整 XML 的情况下将此解决方案构建为 MSBuild 项目的一部分?

最佳答案

确保您使用的是 .NET 4.0 版本的 MSBuild。

如果您针对包含 vcxproj 文件的 VS2010 解决方案使用 .NET 3.5 版本的 MSBuild,您将收到此错误。

我制作了一个像您指定的 C++ 控制台应用程序,并使用 .NET 3.5 和 .NET 4.0 MSBuild 版本运行它。我在使用 3.5 时遇到了错误,但使用 4.0 时却可以正常工作。

Label 属性是 .NET 4.0 中的新属性。它可以添加到 ItemGroup、PropertyGroup、Target 和其他元素。 msbuild 的联机帮助中未提及 label 属性,但在 msbuild 4.0 架构文件中定义了该属性。

关于visual-studio-2010 - 使用 MSBuild 与 VS2010 生成的 vcxproj 文件作为目标 - 错误 MSB4066 ("attribute Label in element is unrecognized"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107757/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com