【问题标题】:An error occurred while retrieving package metadata for 'Microsoft.Extensions.Caching.Memory.2.1.1'检索“Microsoft.Extensions.Caching.Memory.2.1.1”的包元数据时出错
【发布时间】:2020-03-10 17:46:29
【问题描述】:

我用命令删除了 nuget cashe

nuget locals all -clear

在那之后,我无法运行项目。我的项目在 ASP.NET Core 2 中。它显示此错误消息

 error : An error occurred while retrieving package metadata for 'Microsoft.Extensions.Caching.Memory.2.1.1' from source 'C:\Program Files\dotnet\sdk\NuGetFallbackFolder'

我尝试了 dotnet restore,同样的错误。我试图重新安装软件包,但没有任何帮助。有什么解决这个问题的建议或问题的解释吗?

我的项目文件包含:

<Reference Include="Microsoft.Extensions.Caching.Memory, Version=2.2.0.0, Culture=neutral, , processorArchitecture=MSIL"> 
 <HintPath>..\..\packages\Microsoft.Extensions.Caching.Memory.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll</HintPath> 
</Reference>

【问题讨论】:

  • 当前版本为3.1.2。您是否有对2.1.1 或该特定路径的硬编码引用?你的csproj 是什么样的?尤其是添加了Microsoft.Extensions.Caching.MemoryPackageReference元素
  • 该包可以作为间接引用添加。在这种情况下,请检查 obj 文件夹中的 project.assets.json。此文件分层列出所有依赖项。
  • 这是在csproj文件&lt;Reference Include="Microsoft.Extensions.Caching.Memory, Version=2.2.0.0, Culture=neutral, , processorArchitecture=MSIL"&gt; &lt;HintPath&gt;..\..\packages\Microsoft.Extensions.Caching.Memory.2.2.0\lib\netstandard2.0\Microsoft.Extensions.Caching.Memory.dll&lt;/HintPath&gt; &lt;/Reference&gt;
  • 我相信您会发现其他用户的这个回答很有帮助。看看:stackoverflow.com/a/37618663/8293694。在我看来,这两个问题是相似的。
  • 请在问题本身!这是一个问题——它是对特定本地文件的直接引用,而不是PackageReference。这个包是怎么添加的?

标签: c# asp.net-core nuget


【解决方案1】:

看起来 DLL 是手动添加的,实际上并未添加包。或者该项目是从旧的 .NET Framework 格式迁移的,而没有将包引用移动到它。

NuGet 包是通过PackageReference 标签添加的。项目文件应包含:

<ItemGroup>
    <!-- ... -->
    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.2.0" />
    <!-- ... -->
</ItemGroup>

Reference 添加对本地 DLL 的引用。该 DLL 必须存在于 SDK 或HintPath 指向的本地文件夹中。在这种情况下,Reference 标签应该被移除。

【讨论】:

    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    • 2016-02-10
    • 1970-01-01
    相关资源
    最近更新 更多