繁体   English   中英

nuget是否创建了单独的包?

[英]Does nuget create separate packages?

我仍然对nuget如何运作感到困惑。 我git克隆了一个C#.sln项目,并从控制台,我运行了这个nuget命令:

nuget restore my_project.sln

我注意到它生成了两个包含my_project所需的所有依赖项的包。

一个包位于my_project / src / packages下 ,另一个包位于:/users/my_user_name/.nuget/packages 虽然文件结构略有不同,但两个包中的DLL文件是相同的。

那让我困惑。 为什么默认生成两个包? Visual Studio究竟在哪里查找项目的依赖项?

更重要的是,我应该更新哪个配置文件,以便只保留依赖项的副本,以及如何在文件系统中为包指定位置?

最新版本的NuGet支持项目文件中的包引用

此格式将使用%USERPROFILE%.nuget文件夹作为缓存按需还原包。 并且您的解决方案文件夹不会被包含二进制文件的packages文件夹“污染”,您可能不想提交源代码控制。

VS2017允许您在创建新项目时选择“PackageReferences”或较旧的“Packages.Config”格式(Tools / Options / NuGetPackageManager / General)。

您的解决方案中可能有一些项目使用较旧的“Packages.config”格式,该格式存储在解决方案目录的packages文件夹中,以及较新的“PackageReferences”格式。

要将旧项目转换为新格式,我相信您需要从项目中删除所有包,然后再将它们添加回来。 它们将使用您选择的默认格式添加,如果您选择“允许在第一个软件包安装时选择格式”,则会提示确认。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM