我目前正在开发一个名为ABCD的Xamarin.Forms项目,使用macOS Sierra v10.12.6和Visual Studio(VS)for Mac v7.3.2(导致此问题的步骤详细介绍here)。
将我的NETStandard.Library包从版本1.6.0更新到2.0.1 *后,我注意到project.json文件仍然说:
"frameworks": {
"netstandard1.5": {}
}
* VS将此软件包更新到2.0.1,尽管终端显示dotnet --version为2.1.3。
我继续用netstandard1.5
取代netstandard2.0
并重建了这个项目。但后来立即遇到了这个错误:
错误:您的项目未引用“.NETPlatform,Version = v5.0”框架。在project.json的“frameworks”部分中添加对“.NETPlatform,Version = v5.0”的引用,然后重新运行NuGet restore。 (A B C D)
我试图通过以下方式解决这个问题:
1 - 更新project.json:
"frameworks": {
"netstandard2.0": {},
".NETPlatform,Version=v5.0": {}
}
2(source) - 更新project.json:
"frameworks": {
"netstandard2.0": {},
".NETPlatform,Version=v5.0": {
"imports": ["netstandard2.0"]
}
3(source) - 更新project.json:
"frameworks": {
"netstandard2.0": {},
".NETPlatform,Version=v5.0": {
"imports": [".NETCore,Version=v5.0"]
}
4(source) - 更新project.json:
"frameworks": {
"netstandard2.0": {
"imports": [".NETCore,Version=v5.0"]
}
5(source) - 更新project.json:
"frameworks": {
".NETPlatform,Version=v5.0": {
"imports": ["netstandard2.0"]
}
6(source,source) - 更新ABCD.csproj:
<PropertyGroup>
<NuGetTargetMoniker> .NETStandard,Version=v2.0 </NuGetTargetMoniker>
</PropertyGroup>
在尝试上述修复后,仍然存在上述相同的错误。我该如何解决?
编辑:
7(source) - 更新project.json:
"frameworks": {
"netstandard2.0": {},
"netplatform50": {}
}
仍然看到相同的错误。
这个post建议不要使用project.json,而是在你的项目根文件夹中做一个dotnet migrate
来转换它,以便它使用.csproj代替