首页 > 解决方案 > 如何解决“无法找到包”nuget错误

问题描述

正在为依赖于作为项目参考添加的另一个项目 (B.csprojec) 的项目 (A.csproj) 创建 nuget pkg。
这是 .nuspec ,

<?xml version="1.0"?>
<package >
  <metadata>
    <id>A.Client</id>
    <title>A.Client</title>
    <description>HttpClient and Models for calling the A Microservice.</description>
    <version>1.0.2</version>
    <authors></authors>
    <owners></owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <copyright>.</copyright>
    <tags></tags>
    <dependencies>
      <group targetFramework=".NETFramework4.5">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="Newtonsoft.Json" version="9.0.1" exclude="Build,Analyzers" />
        // <dependency id="B" version="1.0.0"/> tried this but same error
      </group>
    </dependencies>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System.Net.Http" targetFramework=".NETFramework4.5" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="bin\$configuration$\netstandard2.0\A.dll" target="lib\netstandard2.0" />
    <file src="bin\$configuration$\net45\A.dll" target="lib\net45" />
  </files>
</package>

我用了

nuget pack A.nuspec -Properties configuration=debug

生成包。但是,当我尝试在 c.csprojc 中使用此包时,出现以下错误

Severity    Code    Description Project File    Line    Suppression State
Error   NU1101  Unable to find B. No packages exist with this id in source(s): Local Package source, Microsoft Visual Studio Offline Packages, nuget.org, Package source    

我错过了什么 ?

标签: nugetnuspec

解决方案


包源离线!!

我在我的系统上安装了VS2017专业版,打开一个已有的项目,发现缺少多个包。我尽我所能,没有看包源!

管理解决方案的 Nuget 包

我正在写这个答案,因为我尝试了以下解决方案,但它们都没有奏效:

  1. 清除缓存
  2. 恢复或重新安装软件包
  3. 更改目标框架
  4. 更新 Nuget 包管理器

解决方案

步骤 01.转到包管理器设置(工具 > Nuget 包管理器 > 包管理器设置) Nuget 包管理器 > 包管理器设置

步骤02。检查包源。可以看到,包源在这里已经下载了SDK/nugets/packages。我不知道原因,但我的 Visual Studio 系统安装中缺少来自 nuget.org 的在线包源。

在此处输入图像描述

步骤 03. 安装 nuget.org 作为包源,然后“清除所有 Nuget 缓存”,然后恢复包。错误会消失。

名称:nuget.org(或如你所愿) 来源:https ://api.nuget.org/v3/index.json

在此处输入图像描述


推荐阅读