繁体   English   中英

空白 Xamarin.Forms 项目上缺少 netstandard 2.0 程序集错误

[英]Missing netstandard 2.0 assembly error on blank Xamarin.Forms project

在 VS 中创建一个空白的 Xamarin.Forms 项目时出现错误,其中没有引用 netstandard 程序集,并且我一生都无法弄清楚如何修复它。

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

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

我试过了,无济于事:

  • 通过 NuGet 将 NETStandard.Library 包更新到 2.0 或更高版本(适用于 App.iOS 和 App.Android 项目,但不适用于主应用程序 - 对于 v1.6.1 以上的任何内容,它表示“被项目阻止”)
  • 按照此处的建议在 csproj <Reference Include="netstandard"/>添加对请求的 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>如此<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 社区 19 预览: https : //privatebin.net/?c7c4cd6123e0edd7#5qYTwaKSyGKBMgU3beshk3Xgx52nyCyAYcsq63uRfWWT

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM