找不到包。源中不存在具有此 ID 的包。.NET 核心

ATT*_*ATT 3 visual-studio nuget nuget-package .net-core

我试图在其他解决方案中使用一个项目作为 nuget 包。我想使用的项目在他所在的解决方案中有 2 个对其他项目的引用。我正在使用 cli 命令dotnet pack在我想用作 nuget 包的项目路径中创建 .nupkg 文件。使用命令将 .nupkg 文件添加到其他解决方案时,dotnet add package我在帖子标题中收到错误,其中包含 2 个参考项目的名称。

小智 6

我的解决方案来自 Visual Studio 主菜单:

Tools=>Options=>Nuget Package Manager=>Click On Package Sources
Run Code Online (Sandbox Code Playgroud)

现在添加以下包(参见屏幕截图)并单击“确定”。

构建您的应用程序,它不会出错。

在此处输入图片说明


Lan*_*SFT 3

使用 dotnet cli:

正如@Lex Li建议的那样,要使用类似命令dotnet add package xxx来引用自己创建的本地包,您可以选择设置本地提要并将其推送到提要,然后再执行此操作。(您也可以选择将包发布到nuget .org 和其他提要)

配置本地提要的简单方法:Nuget.config 文件控制使用 nuget 包的行为,您可以在以下位置找到适用于当前用户的Nuget.config%appdata%\NuGet\NuGet.Config文件: 。您可以使用如下语句:

<add key="Local Packages" value="C:\path\..." />  
Run Code Online (Sandbox Code Playgroud)

将文件夹设置为本地源。然后将 xx.nupkg 文件放入其中,您的问题就会消失。您也可以通过 VS 中的 UI 设置 feed,请参阅我在 中的以下描述Install it by VS。(除此之外,您还可以使用Nuget Server。)


通过VS安装:

由于您尝试使用安装了 VS 的本地计算机中的包,因此您还可以考虑使用 VS nuget 包管理器 UI,请参阅此文档

在 VS 中执行此操作的一个简单方法是Tools=>nuget package manager=>package manager settings=>package source单击绿色按钮来定义新的包源,例如C:\xxx\MyLocalPackages

在此输入图像描述

将 xxx.nupkg 文件复制到该文件夹​​,然后在 VS 中右键单击项目=>管理 nuget 包=>选择正确的包源,您就可以轻松使用它:

在此输入图像描述

该文件夹也将作为您的本地提要。

此外:

我正在使用 cli 命令 dotnet pack 创建 .nupkg 文件。您可以将 xx.nupkg 重命名为 xx.zip,并检查其lib文件夹的内容。请确保引用的两个项目的程序集位于此处。(在解决您的原始问题后,我遇到了这个新问题)如果它们不存在,您可能会遇到类似的问题,如下所示,这Martin解决方法

Update1: ​​(有关Martin解决方法的更多详细信息)在VS中卸载项目以编辑xx.csproj,将以下脚本添加到其中:

<Project>

    ...

  <PropertyGroup>
    <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeP2PAssets</TargetsForTfmSpecificBuildOutput>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include = "..\ProjectName\ProjectName.csproj" PrivateAssets="All" />
  </ItemGroup>

  <Target Name = "IncludeP2PAssets" >
    <ItemGroup>
      < BuildOutputInPackage Include="$(OutputPath)\ProjectName.dll" />
    </ItemGroup>
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

将 ProjectName 替换为您所依赖的项目的名称。然后在VS中构建它,你可以在bin\debug或bin\release中找到xx.nupkg。(它应该适用于 .net core 或 .net standard,我已经检查过了)

任何更新请随时告诉我:)