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

时间:2017-07-01 19:58:42

标签: visual-studio nuget

为什么Nuget(版本4.2.0)总是创建"包" (VS 2017)项目的父文件夹中的文件夹?我现在创建了一个简单的测试项目(没有解决方案,没有.sln文件),即便如此也是如此。

这是否意味着有一个nuget.config告诉Nuget这样做,我必须为每个项目创建一个nuget.config以获得" Packages"在我的项目文件夹中创建的文件夹,如预期的那样?

我在我的第二台电脑上试过,它的行为与此相同。

我在c:\ Users \ Me \ AppData \ Roaming \ NuGet中找到了一个N​​uGet.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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

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

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