Nuget 包未添加包引用

3
我正在尝试将 MySql.DataMySql.Data.Entity 安装到我的类库中。
但是项目中没有添加引用。
我尝试过以下方法:
  1. Update-Package -reinstall (无效)
  2. packages.config 包含正确的条目
  3. *.csproj 也包含正确的条目
  4. 清除了 NuGet-Cache
这是输出内容:
Package 'MySql.Data.6.10.6' already exists in folder 
'C:\Users\MYUSERNAME\Documents\Repositories\XXXXXXX\packages'
Added package 'MySql.Data.6.10.6' to 'packages.config'
Successfully installed 'MySql.Data 6.10.6' to XXXXXXXX.Persistence
Executing nuget actions took 1,6 sec

enter image description here

奇怪的事情是,NuGet 在我的项目中创建了 \docs,这是 MySql 的一部分。

1
我的唯一猜测是,你的项目针对的是.NET 4.5.1或更低版本。但是你说.csproj文件中有正确的条目,所以我假设在.csproj文件中有指向MySql.Data.dll的引用项——如果是这种情况,则问题不同。 - Matt Ward
3个回答

4

Nuget包未添加包引用

我同意马特的评论。您的项目目标框架应为.NET 4.5.1或更低版本。因为包MySql.Data包含对.NET框架4.5.2的程序集引用,适用于.NET框架:

enter image description here

然而,这个软件包也有一些与 .net framework 兼容的内容文件。因此,当您将此软件包添加到项目(目标框架4.5.1或更低版本)时,nuget会安装此nuget软件包,而不会出现任何错误,只需添加内容文件(\docs),而不需要将任何引用添加到项目中
为解决此问题,您可以将此项目的目标框架更改为4.5.2及以上版本,或者使用nuget软件包MySql.Data的版本6.9.11,其中包含对.NET framework 4.0和4.5的程序集引用。

enter image description here

注意:如果您将目标框架更改为 .NET Framework 4.5.2 及以上版本,则可能会出现错误 "The package 'MySql.Data' tried to add a framework reference to 'System.ComponentModel' which was not found in the GAC.",请手动添加缺失库的引用:

包试图添加对未在 GAC 中找到的 System.Runtime 的引用

希望这可以帮助您。

1

1
对于最新版本的Visual Studio,您需要右键单击“依赖项”>“管理NuGet程序包”>单击带有花瓣形状的设置按钮,然后在NuGet Package Manager选项中选择“常规”,并将默认软件包管理格式从“packages.config”更改为“PackageReference”。

enter image description here

如果那不起作用,那么您将需要通过CLI工具添加软件包,查看nuget库并直接粘贴所需版本的命令,例如: dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接