gpt4 book ai didi

MSBuild 仅在导入特定目标文件时才显示 'Label' 属性无法识别

转载 作者:行者123 更新时间:2023-12-02 01:42:10 25 4
gpt4 key购买 nike

当我同时使用以下导入时:

<Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" Label="SlowCheetah" />
<Import Project="$(SolutionDir)\packages\SpecFlow.1.9.0\tools\TechTalk.SpecFlow.targets" Condition="Exists('$(SolutionDir)\packages\SpecFlow.1.9.0')" />

我得到这个构建错误:

The attribute "Label" in element <Import> is unrecognized

我可以从第一个 Import 元素中删除 Label 属性或完全删除第二个 import 元素以消除错误。

谁能解释一下这是怎么回事?似乎第二个目标文件的内容正在改变正在使用的 MSBuild 版本......不知何故。

注意:您可以通过将 SlowCheetah 和 Specflow NuGet 包添加到您的项目来获取这些目标。

最佳答案

虽然表现为 MsBuild 错误,但这实际上是 SpecFlow 的问题(检查完整错误,行号指向 TechTalk.SpecFlow.targets,它调用从 TechTalk.SpecFlow 中的 specflow.exe 导入的 GenerateAll 任务。任务):SpecFlow 的 NuGet 包的 dll 是针对 .Net35 构建的,它不支持 PropertyGroup 上的 Label 属性。因此,当您向它传递一个项目文件(例如您的项目文件)时,它恰好在某个地方包含这样的标签,specflow 会失败。

SpecFlow 声称可以使用 .Net40,因此您可以自己从源代码构建针对 .Net40 的 NuGet 包,然后使用它而不是在线版本。或者使用 SpecFlow 提出支持请求:毕竟 .Net35 已经很老了。

关于MSBuild 仅在导入特定目标文件时才显示 'Label' 属性无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913328/

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