在空白Xamarin.Forms项目上缺少netstandard 2.0组装错误

问题描述 投票:1回答:1

[在VS中创建一个空白Xamarin.Forms项目时出现错误,在该项目中未引用netstandard程序集,并且我一生无法解决该问题。

我在应用程序中遇到的错误是:

  • CS0012 C#类型在未引用的程序集中定义。您必须添加对程序集“ netstandard,Version = 2.0.0.0,文化=中性,PublicKeyToken = cc7b13ffcd2ddd51'
  • CS0006 C#元数据文件'.. \ bin \ Debug \ netstandard2.0 \ ref \ App.dll'找不到)

我尝试过,无济于事:

  • 通过NuGet将NETStandard.Library软件包更新到2.0或更高版本(适用于App.iOS和App.Android项目,但不适用于主应用程序-对于高于1.6.1版的版本,它说“被项目阻止”)
  • 在csproj中添加对所请求的netstandard版本的引用如此处建议的<Reference Include="netstandard"/>https://github.com/dotnet/standard/issues/542#issuecomment-344591026
  • 根据此处的建议将<Reference Include="System.IdentityModel"/>添加到csproj:https://github.com/dotnet/standard/issues/542#issuecomment-501309019
  • <TargetFramework>netstandard2.0</TargetFramework>更改为<TargetFrameworks>netstandard2.0</TargetFrameworks>,如下所示:https://github.com/dotnet/standard/issues/542#issuecomment-465375220
  • 删除bin,obj,.suo和.vs文件夹并重新启动VS,以及创建一个全新的Xamarin.Forms空白项目
  • 在NuGet中更新Xamarin.Essentials和Xamarin.Forms
  • 更新至VS Community 2019 16.5.0 Preview 2.0(我在此阅读此问题的位置已修复;很遗憾,我已将其中的线程放错了位置]

这是我的csproj(默认值,但注释中建议使用AutoGenerateBindingRedirects除外):

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <ProduceReferenceAssembly>true</ProduceReferenceAssembly>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DebugType>portable</DebugType>
    <DebugSymbols>true</DebugSymbols>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Xamarin.Forms" Version="4.3.0.908675" />
    <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="ViewModels\" />
  </ItemGroup>
</Project>

任何人都不知道该怎么办?我发现的大多数答案都行不通,或者已经使用了好几年,并且据称已被更新的VS版本修复。

这里是我详细的输出日志的链接:

VS Community 19预览:https://privatebin.net/?c7c4cd6123e0edd7#5qYTwaKSyGKBMgU3beshk3Xgx52nyCyAYcsq63uRfWWT

VS社区19:https://privatebin.net/?2cf9d7ab07e8a4fb#5UkwWhxKFPDGnTtVdZuawkQLMRNe4qvJLeuaBrFrPoJf

c# .net xamarin xamarin.forms .net-standard-2.0
1个回答
0
投票

在经历了两周的个人痛苦并与经验丰富的Xamarin花费了2个小时后才发现问题!问题是我安装了两种不同版本的dotnet(一个在C:驱动器中,一个在我的E:驱动器中,我也保存程序文件)。在cmd中输入dotnet --version只能看到它找到的版本是Ancient(1.x),然后单击dotnet --list-sdks来找到重复的版本。在删除E:驱动器中的旧SDK并重新检查我的dotnet版本后,错误消失了!

© www.soinside.com 2019 - 2024. All rights reserved.