C# 使用PackageReference时是否需要安装程序包依赖项

C# 使用PackageReference时是否需要安装程序包依赖项,c#,nuget,visual-studio-2017,C#,Nuget,Visual Studio 2017,因此,我使用旧的packages.config安装nugets的方法,在安装包时安装任何依赖项,即 包1 依赖项1 依赖项2 我现在改为使用PackageReference,但注意到在安装“Package1”时,它不会自动安装依赖项。因为我不确定我是否手动安装了“Depdency 1”和“Dependency 2” 使用PackageReference时是否需要手动安装“Dependency 1”和“Dependency 2”?您的问题的直接答案是否,您不需要手动安装依赖项 在最近的VS

因此,我使用旧的
packages.config
安装nugets的方法,在安装包时安装任何依赖项,即

  • 包1
    • 依赖项1
    • 依赖项2
我现在改为使用
PackageReference
,但注意到在安装“Package1”时,它不会自动安装依赖项。因为我不确定我是否手动安装了“Depdency 1”和“Dependency 2”


使用
PackageReference
时是否需要手动安装“Dependency 1”和“Dependency 2”?

您的问题的直接答案是否,您不需要手动安装依赖项

在最近的VS 2017和MSBuild工作中,出现了一些变化和性能改进。关于这意味着什么,有一些很好的信息:

在过去,如果您的项目引用了包A,而包A又引用了包B、C和D,那么您将看到所有这些都列为您的依赖项。使用可传递的包还原,NuGet动态解析依赖项,从而为您所关心的包提供一个整洁的视图

这就解释了“缺少”包引用的原因。如果您对“丢失的”文件本身感兴趣,也可以提供更多信息:

不再使用解决方案本地包文件夹–包现在根据位于%userdata%.nuget的用户缓存解析,而不是解决方案特定的包文件夹。这使得PackageReference通过在工作站上使用包的共享文件夹执行得更快,占用的磁盘空间更少


我说不需要的原因是,当混合使用.NET标准和.NET框架时,这一领域有一个已知的解决方案。

您的问题的直接答案是:,您不需要手动安装依赖项

在最近的VS 2017和MSBuild工作中,出现了一些变化和性能改进。关于这意味着什么,有一些很好的信息:

在过去,如果您的项目引用了包A,而包A又引用了包B、C和D,那么您将看到所有这些都列为您的依赖项。使用可传递的包还原,NuGet动态解析依赖项,从而为您所关心的包提供一个整洁的视图

这就解释了“缺少”包引用的原因。如果您对“丢失的”文件本身感兴趣,也可以提供更多信息:

不再使用解决方案本地包文件夹–包现在根据位于%userdata%.nuget的用户缓存解析,而不是解决方案特定的包文件夹。这使得PackageReference通过在工作站上使用包的共享文件夹执行得更快,占用的磁盘空间更少


我说不需要这样做的原因是,当混合使用.NET标准和.NET框架时,这个领域有一个众所周知的问题。

也许我误解了第二段引用的意思,但我的VS2017项目仍然创建并策划了一个
文件夹,每个包子文件夹中的所有
.dll
文件。(而且,我认为,幸运的是,考虑到我依赖于一些工具,这些工具由我的构建脚本调用……除非这些工具以不同的方式处理。)@O.R.Mapper您需要使用.NET标准/.NET核心项目或元素,以适应这种新格式。啊,在这种情况下,我可以确认这一点。很高兴知道,我可能需要调整构建脚本以指向新位置。也许我误解了第二段的意思,但我的VS2017项目仍然会创建和管理一个
packages
文件夹,每个packages子文件夹中都有
.dll
文件。(而且,我认为,幸运的是,考虑到我依赖于一些工具,这些工具由我的构建脚本调用……除非这些工具以不同的方式处理。)@O.R.Mapper您需要使用.NET标准/.NET核心项目或元素,以适应这种新格式。啊,在这种情况下,我可以确认这一点。很高兴知道,我可能必须调整我的构建脚本,然后指向新的位置。