【问题标题】:Wrong net-standard library version is restored by nuget/used by build错误的网络标准库版本由 nuget 恢复/由 build 使用
【发布时间】: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隐藏文件夹,binobj文件夹,然后重新启动你的项目2)创建一个新的net standard 2.0项目并测试它是否构建良好3)@ 987654321@
  • 是的,它确实显示了 2.0.3。

标签: c# nuget .net-standard


【解决方案1】:

重新安装 nuget 并安装较新版本的 dotnet SDK 会有所帮助。不知道是什么原因造成的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多