首页 > 解决方案 > 元素下元素无法识别

问题描述

美好的一天,我尝试在我的工作中卸载和加载项目。

错误是这个

元素下方的元素无法识别

我在这个链接中看到了和我一样的问题。但它没有任何解决方案。

<Target>

<Choose>
      <When Condition="('$(VisualStudioVersion)' == '10.0' or '$(VisualStudioVersion)' == '') and '$(TargetFrameworkVersion)' == 'v3.5'">
        <ItemGroup>
          <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
        </ItemGroup>
      </When>
      <Otherwise>
        <ItemGroup>
          <Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
            <Private>False</Private>
          </Reference>
        </ItemGroup>
      </Otherwise>
</Choose>
</Target>

我试着把<Choose></Choose>目标放在外面,但还是没有运气。任何人都知道如何解决这个问题。

标签: .netvisual-studioxamarinmsbuild

解决方案


最简单的方法是删除<Target>and </Target>请参阅官方文档中的示例:

<Project  xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
  <PropertyGroup>
    ...
  </PropertyGroup>
  <Choose>
    <When Condition=" '$(Configuration)'=='debug' ">
      <ItemGroup>
        ...
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='retail' ">
      <PropertyGroup>
        ...
      </PropertyGroup>
    </When>
    <Otherwise>
        ...
    </Otherwise>
  </Choose>
  <Target Name="Test">
    ...
  </Target>
</Project>

所以正确的级别应该是:

----Project
------Choose
--------When
------Target

choose标签应该与target. 所以你得到第一个错误The element <When> beneath element <Choose> is unrecognizedchoose而且我认为将标签放在外面后仍然出现问题的原因Target是您没有将选择标签及其内容(当...)一起复制到外面。然后你可能会得到类似的错误The element <Target> beneath element <Choose> is unrecognized

解决此问题的简单方法是删除<Target> and </Target>,然后您可以重新加载项目文件。如果我有什么误解,请随时告诉我:)


推荐阅读