【问题标题】:Why is Nuget creating the "Packages" folder in the project's parent folder?为什么 Nuget 在项目的父文件夹中创建“Packages”文件夹?
【发布时间】:2017-07-01 19:58:42
【问题描述】:

为什么 Nuget(4.2.0 版)总是在(VS 2017)项目的父文件夹中创建“Packages”文件夹?我现在创建了一个简单的测试项目(没有解决方案,没有 .sln 文件),即使在那时也会发生。

这是否意味着某个地方有一个 nuget.config 告诉 Nuget 这样做,并且我必须为每个项目创建一个 nuget.config 才能按预期在我的项目文件夹中创建“Packages”文件夹?

我在我的第二台电脑上试过,那里的行为是一样的。

我在 c:\Users\Me\AppData\Roaming\NuGet 中找到了一个 NuGet.Config,它没有给我任何提示。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
  <activePackageSource>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </activePackageSource>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>

%ProgramFiles(x86)%\NuGet\Config\ 中没有 NuGet.Config

【问题讨论】:

  • 如果您使用 packages.config 文件,NuGet 将在与解决方案相同的目录中创建一个包文件夹。 NuGet.Config 文件可用于选择不同的位置。没有特定项目的包文件夹的概念 - 默认位置始终基于解决方案文件的位置。
  • 就算没有???
  • 如果您使用的是 packages.config 文件,那么 NuGet 将为您的项目将引用的包创建一个包目录。如果您不想在解决方案中使用 packages 目录,则应考虑使用 project.json 文件或项目中的 PackageRefence 项。
  • 对我来说没问题,只是给我带来了麻烦,因为它曾经在以前的版本中创建项目文件夹中的 Packages 文件夹,我必须修复所有引用。谢谢马特!

标签: visual-studio nuget


【解决方案1】:

Nuget 为什么要在项目的父文件夹中创建“Packages”文件夹?

包路径是相对于解决方案文件夹默认情况下,我们无法指示 nuget 为每个项目创建包文件夹。让我解释一下这个默认设置的原因。

根据NuGet.Config,我们可以使用repositoryPath更改默认安装路径:

<config>
  <add key="repositoryPath" value="..\package" />
</config>

可以是相对路径,这个文件是基于当前解决方案的。但是,一个解决方案中的每个项目不能通过使用一种相对路径设置或绝对路径设置来拥有不同的包路径。因此默认包路径是相对于解决方案文件夹而不是项目。

【讨论】:

  • 我正在尝试了解 nuget 包文件夹的行为。只是一个后续问题,这个包文件夹是什么时候在解决方案文件夹中创建的?我有一个包含此文件夹的旧解决方案。但是当我在 TFS 中创建一个新分支时,我需要手动将包文件夹复制到新分支。为什么?恢复软件包时,nuget不会写入该文件夹吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 2020-10-27
  • 2022-06-30
  • 1970-01-01
  • 2013-09-22
相关资源
最近更新 更多