我使用VS 2019 CE v 16.64和4.8.03761
我有两个项目-- TestSql和Notebook TestSql是首先构建的,唯一安装的软件包是系统数据SQLite Core
在对VS 2019年进行了几次更新之后,我构建了笔记本,我只安装了系统数据SQLite Core和WeCantSpell.Hunspell
当我查看用于笔记本的文件夹packages.config时,我看到以下软件包已安装并需要更新
系统缓冲器
系统存储器
系统数字向量
系统运行时CompileServices不安全
那么,如果我没有安装他们,只是卸载他们,这是不工作的?
另一个问题是“如果没有崩溃,不要修复它”, TestSql项目在解决方案的底部有packages.config文件夹,我从packages.config迁移到PackageReference
当我看到使用PackageReference的好处时,我应该知道这可能是个坏主意
所以问题有两个
如何将我的packages.config文件夹恢复到原来的位置?(见屏幕截图)
或者我的强迫症让我的现实意识到包参考真的更好的设计?
如何卸载未安装的软件包?是的,我尝试过管理NuGet包


发布于 2020-07-21 18:29:48
如何将我的packages.config文件夹恢复到原来的位置?
如果您不需要绝对需要 packages.config,那么不要返回。从长远来看,PackageReference格式提供了许多您不想错过的好处,您的链接不会说谎。它甚至解决了你的下一个问题。
如何卸载未安装的软件包?
您只是不使用,因为它会破坏您的库。NuGet包表示由组件、内容文件或构建脚本等构件组成的模块或功能集。这样的模块可能具有工作所需的依赖项,例如SQLite库。包不是创建一个包含所需的所有程序集和文件的巨大存档,而是指定对其他包的依赖关系。通过这种方式,您可以灵活地合并和更新包,特别是如果存在多个包的公共依赖项,这也会防止在不同版本中拥有相同程序集或文件的多个副本,这可能会成为问题。
让我们来看看您正在使用的包的依赖关系。
..。唯一安装的软件包是系统数据SQLite内核
这个包没有任何依赖项,这就是为什么没有附加包的原因。
..。我只安装了系统数据SQLite核心和WeCantSpell.Hunspell
如果您查看上面的列表,Hun拼写包需要System.Memory,这也解释了为什么要安装它。没有它,饥饿咒是行不通的,这取决于它。我听到你问,其他包裹是从哪里来的?每个包都可以有依赖关系。因此,包可以依赖于依赖于.我想你知道这个主意了。因此,让我们再看看.NET框架>= 4.6.1的依赖关系。
我认为这些都是您正在寻找的所有依赖项。所有这些包都将添加到您的packages.config中,这是迁移到PackageReference的一个很好的理由,因为它处理传递的包引用要好得多。假设向包A添加了一个具有依赖项的包B,并且该包具有包C的依赖项。那么A就有了对C的依赖。这被称为传递依赖关系。
旧的packages.config将添加所有包,而PackageReferece只添加A,并且足够聪明地包含其他包,而不显式地添加它们。在您的示例中,项目文件将只包含下面的引用。
<PackageReference Include="System.Data.SQLite.Core">
<Version>1.0.113.1</Version>
</PackageReference>
<PackageReference Include="WeCantSpell.Hunspell">
<Version>3.0.1</Version>
</PackageReference>https://stackoverflow.com/questions/63019958
复制相似问题