空白 Xamarin.Forms 项目缺少 netstandard 2.0 程序集错误
Missing netstandard 2.0 assembly error on blank Xamarin.Forms project
我在没有引用 netstandard 程序集的 VS 中创建空白 Xamarin.Forms 项目时遇到错误,我无法解决这个问题。
我在应用程序中遇到的错误是:
- 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 项目,但不适用于主应用程序 - 它说 "Blocked by project" 任何东西v1.6.1 以上)
- 在 csproj 中添加对请求的网络标准版本的引用
<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 版本中得到修复。
这是我的详细输出日志的link:
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 版本后,错误消失了!
我在没有引用 netstandard 程序集的 VS 中创建空白 Xamarin.Forms 项目时遇到错误,我无法解决这个问题。
我在应用程序中遇到的错误是:
- 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 项目,但不适用于主应用程序 - 它说 "Blocked by project" 任何东西v1.6.1 以上)
- 在 csproj 中添加对请求的网络标准版本的引用
<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 版本中得到修复。
这是我的详细输出日志的link:
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 版本后,错误消失了!