无法找到包。源中不存在具有此 ID 的包。 .NET核心
Unable to find package . No packages exist with this id in source. .NET core
我正在尝试将项目用作其他解决方案中的 nuget 包。
我想使用的项目在他所在的解决方案中有 2 个对其他项目的引用。
我在我想用作 nuget 包的项目路径中使用 cli 命令 dotnet pack
创建 .nupkg 文件。
当使用命令 dotnet add package
将 .nupkg 文件添加到其他解决方案时,我在 post 标题中收到带有 2 个引用项目名称的错误。
使用 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\..." />
将文件夹设置为您的本地提要。然后将您的 xx.nupkg 文件放入其中,您的问题就会消失。也可以在VS中通过UI设置feed,看我下面在Install it by VS
中的描述。 (除此之外,您还可以使用 Nuget Server。)
VS安装:
并且由于您正尝试在安装了 VS 的本地计算机上使用包,您还可以考虑使用 VS nuget 包管理器 UI,请参阅 this document。
在 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
文件夹的内容。请确保引用的两个项目的程序集位于那里。(我在解决您的原始问题后遇到了这个新问题)如果它们不在那里,您可能会遇到类似的问题,例如 this, and here's the workaround from 马丁.
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>
将 ProjectName 替换为您所依赖的项目的名称。然后在VS中构建它,你可以在bin\debug或bin\release中找到xx.nupkg。 (它应该适用于 .net 核心或 .net 标准,我已经检查过了)
如有任何更新,请随时告诉我:)
我的解决方案来自 Visual Studio 主菜单:
Tools=>Options=>Nuget Package Manager=>Click On Package Sources
现在添加以下包(见屏幕截图)并单击确定。
构建您的应用程序,它将没有错误。
我正在尝试将项目用作其他解决方案中的 nuget 包。
我想使用的项目在他所在的解决方案中有 2 个对其他项目的引用。
我在我想用作 nuget 包的项目路径中使用 cli 命令 dotnet pack
创建 .nupkg 文件。
当使用命令 dotnet add package
将 .nupkg 文件添加到其他解决方案时,我在 post 标题中收到带有 2 个引用项目名称的错误。
使用 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\..." />
将文件夹设置为您的本地提要。然后将您的 xx.nupkg 文件放入其中,您的问题就会消失。也可以在VS中通过UI设置feed,看我下面在Install it by VS
中的描述。 (除此之外,您还可以使用 Nuget Server。)
VS安装:
并且由于您正尝试在安装了 VS 的本地计算机上使用包,您还可以考虑使用 VS nuget 包管理器 UI,请参阅 this document。
在 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
文件夹的内容。请确保引用的两个项目的程序集位于那里。(我在解决您的原始问题后遇到了这个新问题)如果它们不在那里,您可能会遇到类似的问题,例如 this, and here's the workaround from 马丁.
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>
将 ProjectName 替换为您所依赖的项目的名称。然后在VS中构建它,你可以在bin\debug或bin\release中找到xx.nupkg。 (它应该适用于 .net 核心或 .net 标准,我已经检查过了)
如有任何更新,请随时告诉我:)
我的解决方案来自 Visual Studio 主菜单:
Tools=>Options=>Nuget Package Manager=>Click On Package Sources
现在添加以下包(见屏幕截图)并单击确定。
构建您的应用程序,它将没有错误。