【发布时间】:2021-05-10 18:48:09
【问题描述】:
我有一个解决方案,其中项目引用 netcoreapp2.1、netstandard 2.0、net472 作为目标框架。
有些人
<TargetFrameworks>netstandard2.0;net472</TargetFrameworks>
别人有
<TargetFrameworks>netstandard2.0</TargetFrameworks>
别人有
<TargetFrameworks>netcoreapp2.1</TargetFrameworks>
由于不相关的问题,我删除了 Nugetfallback 文件夹后,突然我的构建失败,出现数百个关于不再找到 netstandard 库类的错误,例如
C:\Windows\system32\config\systemprofile\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll' could not be found.
我的构建基本上可以归结为:
nuget.exe locals all -clear
nuget.exe restore {MY_SOLUTION}
msbuild /restore {MY_SOLUTION}
查看 nuget/packages 文件夹,我可以看到 netstandard 库在 nuget restore 后存在,但在 ...\netstandard.library\2.0.0\ 文件夹,而不是在 ...\netstandard.library\2.0.3\
我试过了
- 手动删除 nuget 缓存
- 在我的 csproj 文件中使用对 netstandardlibrary 2.0.3 的显式包引用,
但这没有帮助。
Visual Studio 中的解决方案资源管理器告诉我,在解决方案中,只有 netstandard 2.0.3 的依赖项,2.0.0 没有
所有相关的packages.config文件显示
<package id="NETStandard.Library" version="2.0.3" targetFramework="net462" />
为什么 nuget 检索到的 netstandard.library 版本错误(2.0.0 而不是 2.0.3)。 在我的解决方案中,我可以在哪里配置/更改它?这可能是因为我将错误版本作为依赖项的其他库吗?
谢谢!
【问题讨论】:
-
NetStandard.library是否在解决方案资源管理器中显示2.0.3?我测试了你在我身边描述的内容,并获得了正确的行为,没有任何错误。试试这些 1)关闭VS,删除解决方案文件夹下的.vs隐藏文件夹,bin和obj文件夹,然后重新启动你的项目2)创建一个新的net standard 2.0项目并测试它是否构建良好3)@ 987654321@ -
是的,它确实显示了 2.0.3。
标签: c# nuget .net-standard