无法识别元素<When>以及元素<Choose>的元素

时间:2019-09-25 03:26:35

标签: .net visual-studio xamarin msbuild

早上好,我在工作时尝试在这里卸载和加载项目。

错误是这个

  

元素下面的元素无法识别

在此link中,我在这里看到了与我相同的问题。但是它没有任何解决方案。

val intent = Intent(this, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)

我尝试将<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> 放在目标之外,但还是没有运气。任何人都知道如何解决此问题。

  • Visual Studio 2017
  • Windows 10
  • .NET 4.5框架

1 个答案:

答案 0 :(得分:0)

最简单的方法是删除<Target></Target>。请参见official document中的示例:

<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 unrecognized。而且我认为将choose标记放在Target之外后仍然出现此问题的原因是,您没有将选择标记及其内容(当...时)一起复制到外面。然后,您可能会收到类似The element <Target> beneath element <Choose> is unrecognized的错误。

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